题目地址:牛客网
题目:
输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则按字典序打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。
输入描述:
输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。
示例1
输入
“ab”
返回值
[“ab”,“ba”]
思路:
一看到题目就想到了在紫书里学的STL库里的全排列。但是因为输入的是string,所以先把它转到char数组里,但是输出数组又会出错,所以输出时再转化成string。
代码:
class Solution {
public:
vector<string> Permutation(string str) {
vector<string> v;
int n=str.length();
char p[10];
for(int i=0;i<n;i++)
{
p[i]=str[i];
}
do{
string s="";
for(int i=0;i<n;i++)
{
s=s+p[i];
}
v.push_back(s);
}while(next_permutation(p,p+n));
return v;
}
};