1.全局变量可以在最后去定义并初始化,不一定非要在开头
2.此题有一种特殊情况需要考虑,比如字符串是“aa”,那输出应该是“aa”,而不是“aa,aa”,即相同的不输出。实现这个处理用了c++中的容器set,set不保存重复元素。在存储的时候,遇到相同的元素,set不会把相同的元素保存进set。clear是清空set中的元素。
3.
class Solution { public: vector<string> Permutation(string str) { if(str.size() == 0) return ans; length = str.size(); int begin = 0; Permutation(str,begin); //res.clear(); set<string>::iterator it; for (it = res.begin(); it != res.end(); ++it) ans.push_back(*it); return ans; } void Permutation(string str,int begin){ if(begin == length){ res.insert(str); return; } for(int i = begin;i < length;i++){ swap(str[begin],str[i]); Permutation(str,begin+1); swap(str[begin],str[i]); } } set<string> res; vector<string> ans; int length = 0; };
时间: 2024-11-03 05:21:24