《剑指Offer》面试题28:字符串的排列
来源:互联网 发布:岛国中文字幕下载软件 编辑:程序博客网 时间:2024/05/22 03:20
《剑指Offer》 P154
面试题28:字符串的排列
题目
解答
//面试题28:字符串的全排列#include <string>#include <iostream>#include <Windows.h>using namespace std;void permutation(string s,int start,int &num){ if (start == s.size() - 1) cout << num++ << '\t' << s << endl; else { for (int i = start; i < s.size(); i++) { int temp = s[start]; s[start] = s[i]; s[i] = temp; permutation(s, start + 1, num); temp = s[start]; s[start] = s[i]; s[i] = temp; } }}//排列void permutation(string s){ if (s.empty()) return; int num = 0; permutation(s, 0, num);}void combination(string s, int n, int start, string &rlt,int &num){ if (n > s.size() - start) return; if (n == 0) { cout << num++ << '\t' << rlt << endl; } else { string rlt1 = rlt; rlt1 += s[start]; combination(s, n - 1, start + 1, rlt1, num); combination(s, n, start + 1, rlt, num); }}//组合void combination(string s, int n){ if (n > s.size()) return; string rlt; int num = 0; combination(s, n, 0, rlt, num);}int main(){ string s = "123456"; permutation(s); cout << endl; combination(s, 3); system("pause");}
0 0
- 剑指offer面试题 字符串的排列
- 剑指offer面试题28字符串的所有排列permutation
- [剑指offer][面试题28]字符串的排列
- 【剑指offer】面试题28:字符串的排列
- 剑指Offer:面试题28 字符串的排列
- 剑指offer 面试题28—字符串的排列
- 《剑指Offer》面试题28:字符串的排列
- 《剑指Offer》学习笔记--面试题28:字符串的排列
- 剑指offer--面试题28:字符串的排列--Java实现
- 剑指offer--面试题28:字符串的排列--Java实现
- 【剑指Offer学习】【面试题28 :字符串的排列】
- 剑指offer面试题28-字符串的排列
- 剑指offer-面试题28:字符串的排列
- 剑指offer 面试题28:字符串的排列
- 剑指offer之面试题28:字符串的排列
- 剑指offer之面试题28字符串的排列
- 剑指Offer----面试题28:字符串的排列 & 去重
- 剑指offer面试题28:字符串的排列
- 【contentprovider系列7】自定义contentprovider
- Retrofit的使用教程(一)
- Linux 脱机管理问题
- CopyOnWriteArrayList 源码分析
- YUV格式详解
- 《剑指Offer》面试题28:字符串的排列
- oc基础语法
- ibatis实现分页查询
- Sqlite全面学习(三)
- UITableViewCell分割线Lin seperator 的去掉方法
- 内存映射文件
- 时钟3
- Android官方提供的支持不同屏幕大小的全部方法
- shell declare