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