class Solution { public: vector<string> Permutation(string str) { string ans; int len=str.size(); bool used[len]; memset(used,0 ,sizeof(used)); vector<string> ret; // sort(str.begin(), str.end()); DFS(str,ret,ans,used,len,0); return ret; } void DFS( const string &str,vector<string>&ret,string &ans,bool used[],int len,int depth){ if(depth==len){ ret.push_back(ans); return; } for(int i=0;i<len>0&&!used[i]&&str[i]==str[i-1])){ continue; } used[i]=true; ans.push_back(str[i]); DFS(str,ret,ans,used,len,depth+1); ans.pop_back(); used[i]=false; } } }; 请问这个代码哪里有错误 没看出来,根据leecode思想来的DFS回溯</len></string></string></string>
点赞

相关推荐

头顶尖尖的程序员:我也是面了三四次才放平心态的。准备好自我介绍,不一定要背熟,可以记事本写下来读。全程控制语速,所有问题都先思考几秒,不要急着答,不要打断面试官说话。
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务