题解 | #字符串的排列#
字符串的排列
https://www.nowcoder.com/practice/fe6b651b66ae47d7acce78ffdd9a96c7
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param str string字符串 * @return string字符串vector */ vector<string> Permutation(string str) { // write code here vector<string> res; set<string> existsstr; int n = str.size(); backtrace(res, existsstr,0,n,str); return res; } void backtrace(vector<string> &res,set<string> &existsstr, int first, int n, string str){ if(first == n){ if(existsstr.find(str) == existsstr.end()){ res.push_back(str); existsstr.insert(str); } } else{ for(int i=first ;i<n;i++){ int temp = str[first]; str[first] = str[i]; str[i] = temp; backtrace(res, existsstr, first+1, n, str); temp = str[first]; str[first] = str[i]; str[i] = temp; } } } };