字符串的排列
include
class Solution {
public:
vector<string> Permutation(string str) {
vector<string>res;
int n = str.length();
if(0 == n)
return res;
string resStr;
string originalStr = str;
help(res, originalStr, 0, originalStr.length()-1);
sort(res.begin(), res.end());
return res;
}
private:
//递归
void help(vector<string>&res, string str, int start, int end)
{
if(start == end)
{
res.push_back(str);
return;
}</string></string></string>
for(int i = start; i<=end; i++) { if(i!=start &&str[i] == str[start]) continue; swap(str, start, i); //交换元素 help(res, str, start+1, end); //递归下一个元素 swap(str, start, i); //恢复交换前状态 } } void swap(string &str, int i, int j) { char temp = str[i]; str[i] = str[j]; str[j] = temp; }
};