1.题目链接
点击这里
2.解题思路
每日一水,直接使用next_permutation,但注意两个地方:第一,next_permutation的可接收参数不含string类型,所以要先变成char数组;第二,next_permutation是按照字典序的全排列,即如果给出的字符串不是字典升序,则全排列函数就会从当前字符串开始排列,而不会枚举之前的那些字符串,所以在使用前要先对字符串进行排序。
3.代码
class Solution {
public:
vector<string> permutation(string s) {
vector<string> ans;
char trans[10];
int n=(int)s.size();
for(int i=0;i<n;i++){
trans[i]=s[i];
}
sort(trans,trans+n);
do{
string mid="";
for(int i=0;i<n;i++) mid+=trans[i];
ans.push_back(mid);
}while(next_permutation(trans,trans+n));
return ans;
}
};