字符串的排列
来源:互联网 发布:库里1516赛季每场数据 编辑:程序博客网 时间:2024/05/20 07:36
输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。
输入描述:
输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。按字典序打印出该字符串中字符的所有排列。
class Solution {public: vector<string> v; int leng = 0; void buildString(string s,char c[],int len,bool flag[]){ if(len == leng){ for(int i = 0; i < v.size(); i++) if(s == v[i]) return; v.push_back(s); return; } for(int i = 0; i < leng; i++){ if(flag[i]) continue; flag[i] = true; s += c[i]; buildString(s,c,len+1,flag); flag[i] = false; s = s.substr(0,s.length()-1); } } vector<string> Permutation(string str) { if(str.length() == 0) return v; char c[10]; c[0] = str[0]; leng = str.length(); for(int i = 1; i < str.length(); i++){ int j = i - 1; for(; j >= 0; j--){ if(c[j] < str[i]){ c[j+1] = str[i]; break; }else{ c[j+1] = c[j]; } } if(j < 0) c[0] = str[i]; } string s = ""; bool flag[str.length()]; for(int i = 0; i < str.length(); i++) flag[i] = false; buildString(s,c,0,flag); return v; }};
0 0
- 字符串的全排列
- 字符串的全排列
- 转载 字符串的排列
- 字符串的排列--总结
- 字符串的排列
- 字符串的全排列
- 字符串的排列
- 53.字符串的排列
- 字符串的全排列
- 字符串的全排列
- 字符串的全排列
- 字符串的全排列
- 字符串的排列
- 字符串的排列
- 字符串的排列
- 字符串的倒序排列
- 字符串的全排列
- 字符串的排列
- 认识CSS样式
- Dijkstra算法求最短路径
- Oracle ASM操作管理
- Java并发编程:volatile关键字解析
- 二叉搜索树与双向链表
- 字符串的排列
- eclipse 跟 android studio 完全可以用同一套代码,使android studio 的代码结构可以跟eclipse一样
- OC 字符串 数组 集合
- PHP程序员的技术成长规划
- 数组中出现次数超过一半的数字
- 进程与线程的区别(转)
- 【日记-C语言】今天看书,吸LFG
- c语言—stdarg宏(函数可变参数实现)
- 最小的K个数