1384全排列【51NOD】
来源:互联网 发布:linux golang 1.8 编辑:程序博客网 时间:2024/05/14 10:13
前言
研究生大部分时间都是要写C和C++了。为了熟悉语言和基本库,并且作为锻炼思维的一种手段。在51node上面做做算法题吧。
题目
1384 全排列
解法
#include<iostream>#include<string>#include<vector>#include<algorithm>using namespace std;//获得独立数字vector<char> getNum(const string s){ vector<char> cs; for(int i=0;i<s.size();i++){ cs.push_back(s[i]); } return cs;}//全排列 cs:单个数字数组 index:当前递归深度,初始为0 void allSort(vector<char> cs,int index,vector<string> *an){ if(index==cs.size()-1){ string temp=""; for(int i=0;i<cs.size();i++) temp.insert(temp.begin()+i,cs[i]); an->push_back(temp); }else{ for(int i=index;i<cs.size();i++){ swap(cs[index],cs[i]); allSort(cs,index+1,an); swap(cs[index],cs[i]); } }}int main(){ string s; cin>>s; vector<string> an; vector<char> cs=getNum(s); allSort(cs,0,&an); //为了AC输出调整 sort(an.begin(),an.end());//排序 vector<string>::iterator iter=unique(an.begin(),an.end()); an.erase(iter,an.end());//消除重复 for(int i=0;i<an.size();i++) cout<<an[i]<<endl; return 0;}
总结
1。刚开始题目没看清就写也是作孽
2。为了AC输出是有讲究的
3。全排列使用递归算法完成的,记得大二时候上算法课讲过的。
0 0
- 1384全排列【51NOD】
- 51NOD 1384 全排列
- 51nod 1384 全排列
- 51Nod--1384全排列
- 51NOD 1384 全排列
- 51nod 1384 全排列
- 51nod 1384全排列
- 51nod 1384 全排列
- 51nod 1384 全排列
- 51Nod 1384 全排列
- 51nod 1384 全排列
- 51nod 1384 全排列
- 【51Nod】1384 全排列
- 51nod 1384 全排列
- 【51Nod】1384 全排列
- 51nod 1384 全排列
- 51nod 全排列
- 51nod 1384 全排列 (dfs)
- java中\n\r的区别
- 张冬:OpenPOWER CAPI为什么这么快?(二)
- XML和ADO.NET 的使用
- 配置PLSQL Developer远程连接Oracle数据库
- Nginx配置文件详细说明
- 1384全排列【51NOD】
- Volley简单学习使用四——源码分析二
- 了解云计算的漏洞
- qt中的qrc文件和rcc文件
- 数据结构与算法分析 note
- JAVA执行bat文件和shell脚本文件
- 缓存机制
- leetcode--ConvertSortedListtoBinarySearchTree
- 不同晶振配置STM32 波特率