法一:next_permutation函数,两个参数分别为起始指针和末尾指针。

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 char arr[19];
 5 int main(){
 6     scanf("%s",arr);
 7     int len=strlen(arr);
 8     sort(arr,arr+len);
 9     char *s=arr,*t=arr+len;
10     do{
11         printf("%s\n",arr);
12     }while(next_permutation(s,t));
13 }

法二:dfs

注意全排列一共有$n!$种,所以num数组一定要开的够大。

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 char arr[100];
 5 char brr[100];
 6 string num[720000];
 7 bool v[100];
 8 int n;
 9 int k=0;
10 void dfs(int t){
11     if(t>=n){
12         num[k++]=brr;
13         return;
14     }
15
16     for(int i=0;i<n;i++){//dfs必须多加熟悉
17         if(!v[i]){
18             v[i]=true;
19             brr[t]=arr[i];
20             dfs(t+1);
21             v[i]=false;
22         }
23     }
24 }
25 int main(){
26     scanf("%s",arr);
27     n=strlen(arr);
28     //sort(arr,arr+n);
29     //这里不必排,因为最后肯定要排
30     dfs(0);
31     sort(num,num+k);  //这里必须排序
32     int m=unique(num,num+k)-num;
33     for(int i=0;i<m;i++){
34         cout<<num[i]<<endl;
35     }
36 }

转载于:https://www.cnblogs.com/elpsycongroo/p/6912331.html

[51nod1384]全排列相关推荐

  1. 51Nod-1384 全排列【全排列】

    1384 全排列  给出一个字符串S(可能有重复的字符),按照字典序从小到大,输出S包括的字符组成的所有排列.例如:S = "1312", 输出为: 1123 1132 1213 ...

  2. 字符串全排列的问题 python和c语言实现

    前言 这是一个的经典的问题 设计一个算法,输出一个字符串字符的全排列. 比如,String = "abc" 输出是"abc","bac",& ...

  3. 求字符串全排列 python实现

    文章目录 算法思想 附上c语言实现 参考 算法思想 输入一个字符串,打印这个字符串中字符的全排列. eg: 输入:abc 输出:abc acb bac bca cab cba 思路:将求字符串的全排列 ...

  4. #418 Div2 Problem B An express train to reveries (构造 || 全排列序列特性)

    题目链接:http://codeforces.com/contest/814/problem/B 题意 : 有一个给出两个含有 n 个数的序列 a 和 b, 这两个序列和(1~n)的其中一个全排列序列 ...

  5. 获取序列全排列Java,java中全排列的生成算法汇总

    全排列的生成算法就是对于给定的字符集,用有效的方法将所有可能的全排列无重复无遗漏地枚举出来.任何n个字符集的排列都可以与1-n的n个数字的排列一一对应, 因此在此就以n个数字的排列为例说明排列的生成法 ...

  6. 【经典】javascript ES5原生实现考试题答案全排列组合数组结果获取

    //考试题答案全排列组合function getAllArrange(arr, index, group) {index || (index = 0), group || (group = []);v ...

  7. 蓝桥杯 扑克序列(全排列)

    扑克序列 A A 2 2 3 3 4 4, 一共4对扑克牌.请你把它们排成一行. 要求:两个A中间有1张牌,两个2之间有2张牌,两个3之间有3张牌,两个4之间有4张牌. 请填写出所有符合要求的排列中, ...

  8. LeetCode实战:全排列

    题目英文 Given a collection of distinct integers, return all possible permutations. Example: Input: [1,2 ...

  9. 【Codeforces】908B New Year and Buggy Bot(暴力+全排列)

    http://codeforces.com/contest/908/problem/B 0 1 2 3 可以对应 上下左右.(具体哪个对应哪个,试过才知道) str 的 长度 为 100,0 1 2 ...

最新文章

  1. grafana官方使用文档_使用 Loki 采集微服务日志
  2. 柱坐标系下的ns方程_笛卡尔坐标系到底是什么?
  3. r语言读取csv文件赋值gamma_tidyfst vs pandas(1):csv文件读写
  4. map分组后取前10个_map根据属性排序、取出map前n个
  5. 阿里的事前验尸_(不太完全)100天的代码-验尸
  6. spring框架(三)mvc
  7. 安装引导黑屏_给电脑安装系统老是装不上,重启就黑屏,原来是这项设置在作怪!...
  8. Cinemachine教程 | Unity中如何快速制作镜头晃动?
  9. 如何使用VideoProc将MKV转换为MP4?
  10. 服务器显示AL024是什么意思,云端时代云终端快速部署指南(S11AL).ppt
  11. 站在5G潮头 爱立信如何重描金字招牌 | MWC 2019
  12. memcpy和strcpy的区别
  13. android 公式编辑器,公式编辑器
  14. windows修改用户文件夹名称 更改用户名 修改C盘Users目录下文件夹名称
  15. 解决其他浏览器能上网谷歌浏览器不能上网
  16. linux sdl windows.h,SDL入门教程(十):1、多语言支持,Win32下的GetText
  17. 涂涂乐的详细实现之三--文件IO操作
  18. 【IDEA】IDEA常用配置
  19. presson绘图练习
  20. xx壳通过外网远程访问本地SQLServer服务器(原创)

热门文章

  1. Django分页的基本实现办法
  2. 使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境
  3. ACM训练赛--递推专题
  4. 浅析三层架构与MVC模式的区别
  5. C++中的string 类型占几个字节
  6. Arduino编程之Serial.println()和Serial.print()
  7. 树莓派wiringPi常用的函数介绍
  8. UART0串口编程(六):串口(UART0)之UC/OS(二)UC/OS下的串口接收任务编程
  9. c strlen C++ strlen
  10. 彻底理解JavaScript中回调函数 (推荐)