剑指offer:字符串的排列
2015-12-02 21:50
393 查看
题目描述:输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba(结果请按字母顺序输出)。
输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。
class Solution { public: string tmp; vector<string> res; vector<string> per(string str) { if (str.size() == 0) { res.push_back(tmp); return res; } int i, j; string s; for (i = 0; i < str.size(); i++) { tmp += str[i]; for (j = 0; j < str.size(); j++) { if (j != i) s += str[j]; } res = per(s); s.clear(); tmp = tmp.substr(0, tmp.size() - 1); } return res; } vector<string> Permutation(string str) { if (str.size() == 0) return res; res = per(str); vector <string> ::iterator it; sort(res.begin(), res.end()); it = unique(res.begin(), res.end()); if (it != res.end()) res.erase(it, res.end()); return res; } };
相关文章推荐
- AngularJS进阶(十四)AngularJS灵异代码事件
- AngularJS进阶(十四)AngularJS灵异代码事件
- CDH5.1使用CDH Manager安装
- html/css
- node js 调试
- WEB笔记-让HTML5向下兼容的策略
- BZOJ 1012:[JSOI2008]最大数 maxnumber
- jQuery基础选择器
- nodeJs+jquery实现聊天插入表情功能
- 谈谈对js原型对象的理解
- Basic knowledge of HTML
- JavaScript、JSP、Java及javaEE
- React.js得到高度评价
- HTML中的checked问题
- 在JQuery的validate功能中使用remote实现Ajax功能后台验证
- html li标签前面添加图标三种方法
- 当设计模式遇到Javascript (一 · 设计模式概述)
- jsp和js之间的数据流动
- css 选择器Selector
- CSS温习:选择器 &etc