class Solution {//类似于数组的全排列,但是需要注意有的元素相同需要去除,因此用了set元素不能重复的特性
public:
vector<string>tmp;
set<string>Tmp;
void print(string str, int index, int len,vector<bool>visit,string a)
{
if (index >= len)
{
Tmp.insert(a);
return;
}
for (int i = 0; i<len; i++)
{
if (!visit[i])
{
visit[i] = true;
a[index] = str[i];
print(str, index + 1, len,visit,a);
visit[i] = false;
}
}
}
vector<string> Permutation(string str) {
if(str.empty())
return tmp;
string a = str;
int len = str.size();
vector<bool>visit(len);
print(str, 0, len,visit,a);
for (set<string>::iterator it = Tmp.begin(); it != Tmp.end(); it++)
tmp.push_back(*it);
return tmp;
}
};
字符串全排列
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.