字符串排列
2015-08-30 20:46
351 查看
题目描述
编写一个方法,确定某字符串的所有排列组合。
给定一个string A和一个int n,代表字符串和其长度,请返回所有该字符串字符的排列,保证字符串长度小于等于11且字符串中字符均为大写英文字符,排列中的字符串按字典序从大到小排序。(不合并重复字符串)
测试样例:
"ABC"
返回:["CBA","CAB","BCA","BAC","ACB","ABC"]
编写一个方法,确定某字符串的所有排列组合。
给定一个string A和一个int n,代表字符串和其长度,请返回所有该字符串字符的排列,保证字符串长度小于等于11且字符串中字符均为大写英文字符,排列中的字符串按字典序从大到小排序。(不合并重复字符串)
测试样例:
"ABC"
返回:["CBA","CAB","BCA","BAC","ACB","ABC"]
#include<iostream> #include<string> #include<vector> #include<algorithm> using namespace std; class Permutation { public: void core(vector<string>&result,string &s,int index) { int len=s.size(); if(index==len-1) { result.push_back(s); return; } for(int i=index;i<len;i++) { swap(s[i],s[index]); core(result,s,index+1); swap(s[i],s[index]); } } vector<string> getPermutation(string A) { vector<string>result; core(result,A,0); sort(result.begin(),result.end(),greater<string>()); return result; } }; int main() { Permutation s; string A="ABC"; vector<string>svc=s.getPermutation(A); for(vector<string>::iterator it=svc.begin();it!=svc.end();it++) cout<<*it<<endl; }
相关文章推荐
- iOS常用设计模式——原型模式
- Android4.0以上版本Http请求的问题
- UVA 10453 十七 Make Palindrome
- html5位置定位
- 深入浅出CChart 每日一课——快乐高四第十三课 月上柳梢,Win32标准控件ChartCtrl之牵手
- 在resin4.0部署项目,出现server 'default' 错误
- IOS面试题归总
- UVA 10163 十六 Storage Keepers
- 八、MDT 2013 Update 1批量部署-修改配置文件BootStrap.ini和CustomSettings.ini
- 站在十字路口的中国电视
- 引用和指针的区别
- poj 2503 Babelfish(字典树·翻译)
- Note For Linux By Jes(20)-Linux 核心编译与管理
- 【J2SE】配置JDK环境变量
- 关于分布式系统的数据一致性问题(二)
- 2 JavaWeb之Mac下配置Tomcat
- Idol之坑
- UVA 1252 十五 Twenty Questions
- JAVA练级之路(二)--- JAVA入门
- 5 个很好的 Python 面试题