字符串的排列
来源:互联网 发布:javaweb项目源码 编辑:程序博客网 时间:2024/06/07 14:17
输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。
Note:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。
思路:全排列(需要交换的时候,判断之前是否已经交换过当前字符即可)
class Solution {public: void help(string &str, int pos, set<string> &answer) { if(pos == str.length()) { answer.insert(str); return; } for(int i= pos; i< str.length(); ++i) { bool flag= false; for(int j= i-1; j>= pos; --j) { if(str[j] == str[i]) { flag= true; break; } } if(flag) { continue; } swap(str[i], str[pos]); help(str, pos+1, answer); swap(str[i], str[pos]); } }public: vector<string> Permutation(string str) { vector<string> answer; int len= str.length(); if(0 == len) { return answer; } std::set<string> helpAnswer; sort(str.begin(), str.end()); help(str, 0, helpAnswer); answer.insert(answer.end(), helpAnswer.begin(), helpAnswer.end()); return answer; }};
阅读全文
0 0
- 字符串的全排列
- 字符串的全排列
- 转载 字符串的排列
- 字符串的排列--总结
- 字符串的排列
- 字符串的全排列
- 字符串的排列
- 53.字符串的排列
- 字符串的全排列
- 字符串的全排列
- 字符串的全排列
- 字符串的全排列
- 字符串的排列
- 字符串的排列
- 字符串的排列
- 字符串的倒序排列
- 字符串的全排列
- 字符串的排列
- C#学习笔记-base关键字
- Surface、SurfaceView、SurfaceHolder及SurfaceHolder.Callback之间的关系
- ORA00257: archiver error. Connect internal only, until freed
- Git 使用常用命令
- XML入门总结
- 字符串的排列
- 数据库多表查询时,返回值该如何接收问题
- tomcat在linux中catalina.out日志拆分
- 位置式和增量式PID控制
- Servlet笔记一
- [JavaEE
- Java 多态性的理解
- pandas多级分组如何排序
- JS Array的属性和常用方法