【笔试】得到一个序列的全排列

原创 2016年08月28日 18:36:01

怎么得到一个数列的全排列

#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <iterator>
using namespace std;
int main()
{
string str;
vector<string>strVec;
int n;
while(cin >> n)
{
for(int i =0; i < n;i++)
{
cin>>str;
strVec.push_back(str);
}
sort(strVec.begin(), strVec.end());
//cout << str << endl;
int icount = 0;
while (next_permutation(strVec.begin(), strVec.end()))
{
copy(strVec.begin(),strVec.end(),ostream_iterator<string>(cout," "));
cout<<endl;
icount++;
}

cout<<icount<<endl;
strVec.clear();
}
system("pause");
return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

获得一个数组的全排列

例如 char a[]="abcd" 求这个数组的全排列,将复杂问题或者不能直接解决的问题转变为多个简单问题的方法就是,让所有的元素一次成为第一个元素, void Traversal(char* ...
  • dasgk
  • dasgk
  • 2015年07月21日 21:15
  • 981

全排列 深搜dfs

#include #include using namespace std; int a[100],vis[100],n; void dfs(int t){ if(n
  • update7
  • update7
  • 2017年02月26日 15:09
  • 17600

全排列的实现方法+字典序输出

一:背景 全排列在很多笔试都有应用,是一个很常见的算法,关于这类的题目变化很多。这种算法的得到基于以下的分析思路。  给定一个具有n个元素的集合(n>=1),要求输出这个集合中元素的所有可能的排列。 ...
  • sinat_36215255
  • sinat_36215255
  • 2017年10月10日 20:37
  • 341

输出一个序列的全排列

#include void swap(int &a,int &b) { int t; t = a; a = b; b = t; } void cal(int* arr,int low,in...
  • hehainan_86
  • hehainan_86
  • 2013年11月22日 15:22
  • 774

算法:康托展开式——实现全排列序列与序号的映射

康托展开式实现了由1到n组成的全排列序列到其编号之间的一种映射,下面会给出例子,虽然这个公式应用不是很多,但这种思想值得学习,首先给出其公式: X=an*(n-1)!+an-1*(n-2)!+...+...
  • lrgdongnan
  • lrgdongnan
  • 2016年06月07日 10:23
  • 1979

java实现数组全排列

`package com.yuzhiyun;import java.lang.reflect.Array; import java.util.Arrays;public class Yuzhyun ...
  • yuzhiyun3536
  • yuzhiyun3536
  • 2017年04月11日 15:43
  • 2033

一组整数的全排列【C程序】

#include "iostream" using namespace std; int myfactorial(int n) { int i,factorial; i = 1;...
  • lyc_daniel
  • lyc_daniel
  • 2016年03月29日 11:46
  • 547

poj1731输出不重复全排列

已知一个序列,输出它的不重复全排列 思路1.stl应用:next_permutation函数 对数组输出全排列,原理每次改变当前字符串变为,大小恰好原来大一阶的序列。若已为最大序列,返回0。 说明:n...
  • yuanba_xs
  • yuanba_xs
  • 2017年02月08日 18:54
  • 209

22-判断一个序列是否是另一个序列入栈的弹出序列

题目描述: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压...
  • quzhongxin
  • quzhongxin
  • 2015年07月17日 09:40
  • 1184

全排列的递归算法(包括字典序输出和非字典序输出)

第一种:(字典序) #include #include #include int a[10],p[10],vis[10];//标记为1则说明已固定 int n; void digui(int l...
  • xdz78
  • xdz78
  • 2015年05月16日 17:47
  • 2336
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【笔试】得到一个序列的全排列
举报原因:
原因补充:

(最多只允许输入30个字)