首页 > 代码库 > 剑指offer28 字符串的排列
剑指offer28 字符串的排列
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; };
剑指offer28 字符串的排列
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。