博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj1256 dfs(全排列)
阅读量:2239 次
发布时间:2019-05-09

本文共 1633 字,大约阅读时间需要 5 分钟。

题意:给定字符串(长度最大为13),字母可能有重复,要求按升序输入其所有的全排列,注意,字母的大小顺序为A<a<B<b<...<Z<z

算法:

1.dfs 

2.STL

/*算法:dfs */#include 
#include
#include
using namespace std;char c[20]; // 存储输入的字符串 char ans[20]; // 存放结果 int cnt[100]; // 存放每个字母出现的次数 bool cmp(const char &a, const char &b){ if (a >= 'A' && a <= 'Z' && b >= 'A' && b <= 'Z') { return a < b; } else if (a >= 'a' && a <= 'z' && b >= 'a' && b <= 'z') { return a < b; } else if (a >= 'A' && a <= 'Z' && b >= 'a' && b <= 'z') { return a + 32 <= b ; } else if (a >= 'a' && a <= 'z' && b >= 'A' && b <= 'Z') { return a < b+32; }}void dfs(int curr, int n){ if (curr == n) { ans[n] = '\0'; cout << ans << endl; return; } for (int i=0; i
0) { cnt[c[i]-'A']--; ans[curr] = c[i]; dfs(curr+1,n); cnt[c[i]-'A']++; } } }}int main(){ int cases; cin >> cases; for (int i=0; i
> c; int len = strlen(c); sort(c,c+len,cmp); memset(cnt,0,sizeof(cnt)); for (int i=0; i

/*算法:STL */#include 
#include
#include
using namespace std;bool cmp(const char &a, const char &b){ if (a >= 'A' && a <= 'Z' && b >= 'A' && b <= 'Z') { return a < b; } else if (a >= 'a' && a <= 'z' && b >= 'a' && b <= 'z') { return a < b; } else if (a >= 'A' && a <= 'Z' && b >= 'a' && b <= 'z') { return a + 32 <= b ; } else if (a >= 'a' && a <= 'z' && b >= 'A' && b <= 'Z') { return a < b+32; }}int main(){ int cases; char c[20]; cin >> cases; for (int i=0; i
> c; int len = strlen(c); sort(c,c+len,cmp); cout << c << endl; while(next_permutation(c, c+len, cmp)) { cout << c << endl; } }}

转载地址:http://brlbb.baihongyu.com/

你可能感兴趣的文章
面试题 —— 关于main方法的十个面试题
查看>>
集成测试(一)—— 使用PHP页面请求Spring项目的Java接口数据
查看>>
使用Maven构建的简单的单模块SSM项目
查看>>
Intellij IDEA使用(十四)—— 在IDEA中创建包(package)的问题
查看>>
FastDFS集群架构配置搭建(转载)
查看>>
HTM+CSS实现立方体图片旋转展示效果
查看>>
FFmpeg 命令操作音视频
查看>>
问题:Opencv(3.1.0/3.4)找不到 /opencv2/gpu/gpu.hpp 问题
查看>>
目的:使用CUDA环境变量CUDA_VISIBLE_DEVICES来限定CUDA程序所能使用的GPU设备
查看>>
问题:Mysql中字段类型为text的值, java使用selectByExample查询为null
查看>>
程序员--学习之路--技巧
查看>>
解决问题之 MySQL慢查询日志设置
查看>>
contOS6 部署 lnmp、FTP、composer、ThinkPHP5、docker详细步骤
查看>>
TP5.1模板布局中遇到的坑,配置完不生效解决办法
查看>>
PHPstudy中遇到的坑No input file specified,以及传到linux环境下遇到的坑,模板文件不存在
查看>>
TP5.1事务操作和TP5事务回滚操作多表
查看>>
composer install或composer update 或 composer require phpoffice/phpexcel 失败解决办法
查看>>
TP5.1项目从windows的Apache服务迁移到linux的Nginx服务需要注意几点。
查看>>
win10安装软件 打开时报错 找不到 msvcp120.dll
查看>>
PHPunit+Xdebug代码覆盖率以及遇到的问题汇总
查看>>