题解 | #字符串的排列#
字符串的排列
http://www.nowcoder.com/practice/fe6b651b66ae47d7acce78ffdd9a96c7
class Solution {
public:
void subPermutation(string &str,int pos,vector<string> &temp){
int size=str.size();
if(pos==size-1)
temp.push_back(str);
for(int i=pos;i<size;i++)
{
if(i==pos)
subPermutation(str, pos+1,temp);
if(str[i]!=str[pos])
{
swap(str[pos], str[i]);
subPermutation(str, pos+1,temp);
swap(str[pos], str[i]);
}
}
}
vector<string> Permutation(string str) {
vector<string> dp;
if(str.size()==0)
return dp;
subPermutation(str,0,dp);
return dp;
}
}; 都说使用动态规划,但是我还是感觉称之为回溯比较合适,典型的模板题

