class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param str string字符串 * @return string字符串vector */ // 避免字符串重复添加 set<string> s_s; vector<string> ans; void dfs(string str,int index) { if(index==str.size() && (s_s.empty() || s_s.count(str)==0)) { ans.emplace_back(str); s_s.emplace(str); } for(int i=index; i<str.size();++i) { swap(str[i],str[index]); // 注意这里是index+1,而不是i+1; dfs(str,index+1); swap(str[i],str[index]); } return; } vector<string> Permutation(string str) { // write code here // for(int index=0; index<str.size(); ++index) dfs(str,0); return ans; } };