字符的全排列
来源:互联网 发布:淘宝网百丽 编辑:程序博客网 时间:2024/05/16 04:35
输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。
第一种情况:不存在重复的字符串
class Solution {public: vector<string> result; vector<string> Permutation(string str) { result.clear(); if(str.length()==0) return result; permute(str,0); return result; } void permute(string str,int index) { if(str.length()-1==index) { result.push_back(str); return ; } for(int i=index;i<str.length();++i) { char tt=str[i]; str[i]=str[index]; str[index]=tt; permute(str,index+1); tt=str[i]; str[i]=str[index]; str[index]=tt; } }};
第二种情况,存在重复字符
class Solution {public: vector<string> result; vector<string> Permutation(string str) { result.clear(); if(str.length()==0) return result; permute(str,0); return result; } void permute(string str,int index) { if(str.length()-1==index) { result.push_back(str); return ; } for(int i=index;i<str.length();++i) { bool flag=true; for (int j=index;j<i;++j) { if (str[j]==str[i]) { flag=false; break; } } if(!flag) continue; char tt=str[i]; str[i]=str[index]; str[index]=tt; permute(str,index+1); tt=str[i]; str[i]=str[index]; str[index]=tt; } }};
0 0
- 字符的全排列
- 字符的全排列
- 字符的全排列
- 字符的全排列
- 字符全排列的递归算法
- 字符全排列的另一种实现
- n个字符的全排列
- 将给出的字符全排列
- 求N个字符的全排列
- 递归实现的字符全排列
- 对数字、字符的全排列
- 求n个字符的全排列
- [算法设计-字符的全排列问题]
- 求字符数组的全排列算法
- 数组内字符的全排列算法
- PHP实现字符的全排列
- 求字符数组的全排列
- 字符串的排列(全排列,包含重复的字符)
- iOS自动处理键盘事件的第三方库:IQKeyboardManager
- Android线程的正确使用姿势
- iOS面试题(个人心得体会)1
- Java:封装POI实现word的docx文件的简单模板功能
- Android 实现形态各异的双向侧滑菜单 自定义控件来袭
- 字符的全排列
- MVC中上传图片文件
- ActiveMQ Master Slave集群配置
- 【leetcode】235. Lowest Common Ancestor of a Binary Search Tree
- Linux scp命令使用
- Spring面试问答Top 25
- 关于手机前端FastClick消除点击延时提高程序的运行效率
- C++常量指针与指针常量
- PHP自学no00009数据类型浮点型之圆周率输出