字符串全排列
2017-09-15 00:22
155 查看
题目描述
输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:
输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。
#include <algorithm> class Solution { public: vector<string> result_final; set<string> result; void permRec(string str, int i){ if(i >= str.length()){ return; } if(i == str.length() - 1) { result.insert(str); return; } else { for(int j = i; j < str.length(); j++){ //if(str[i] != str[j]){ char tmp = str[i]; str[i] = str[j]; str[j] = tmp; permRec(str, i + 1); tmp = str[i]; str[i] = str[j]; str[j] = tmp; //} } } } vector<string> Permutation(string str) { //sort(str.begin(), str.end()); permRec(str, 0); for(set<string>::iterator it = result.begin(); it != result.end(); it++){ result_final.push_back(*it); } //sort(result.begin(), result.end()); return result_final; } };
相关文章推荐
- 字符串的全排列和组合算法
- 字符串的排列
- 剑指offer28 字符串的排列
- 字符串的排列
- 请使用一种算法,对字符串进行升序排列
- 字符串全排列
- 题目:剔除一个字符中重复的字符,然后按ASCII码值从小到大排列。 例如,输入:abbcccddeeeffgghh 输出:abcdefgh 注意:1、剔除是整个字符串中重复的字符,而不是连续的字符 2
- 字符串的排列
- 字符串的排列组合问题
- php一个解析字符串排列数组的方法
- 字符串的排列
- 字符串的全排列和所有组合问题
- 剑指offer 28字符串全排列
- 在控制台上输入一个字符串,将其中夹杂的字母去除,只剩数字,然后对对这些数字进行全排列,输出全排列结果
- (二十)剑指offer之字符串的排列
- 将字符串按照单词单位逆序排列输出
- 剑指offer 面试题28 字符串的排列与集合的所有子集
- Morse Code HNUST 1675(字符串全排列 递归解决 数组a[]与流输入的缓慢)
- 字符串的排列
- 【剑指offer】字符串的排列