1256 Anagram
题目链接: http://poj.org/problem?id=1256
题意: 根据自定义的字典序: 'A'<'a'<'B'<'b'<...<'Z'<'z' 和输入的字符串(最长为13), 输出按新字典序的全排列.
分析: 题目简单, 但是要处理好映射关系.
#include <iostream>
#include <string>
#include <algorithm>
using namespace std; int mp[]; // 字符串中的各个字符按相对大小映射到mp中. int main(){
int T,n;
cin>>T;
while(T--){
string s;
cin>>s;
int len = s.length();
for(int i=;i<len;++i){
if(s[i]>='a' && s[i] <= 'z'){
mp[i] = (s[i]-'a')*+;
}else{
mp[i] = (s[i]-'A')*;
}
}
sort(mp,mp+len);
do{
for(int i=;i<len;++i){
char c;
if(mp[i]%){
c = 'a'+mp[i]/;
}else{
c = 'A'+mp[i]/;
}
cout<<c;
}
cout<<endl;
}while(next_permutation(mp,mp+len));
}
return ;
}
-->
1256 Anagram的更多相关文章
- POJ 1256.Anagram
2015-06-04 问题简述: 输出一串字符的全排列,顺序不同于一般的字母序,而是 A<a<B<b......<Z<z.所以应该重写一个比较函数. 原题链接:http: ...
- poj 1256 Anagram(dfs)
题目链接:http://poj.org/problem?id=1256 思路分析:该题为含有重复元素的全排列问题:由于题目中字符长度较小,采用暴力法解决. 代码如下: #include <ios ...
- poj 1256 Anagram—next_permutation的神奇应用
题意:给你一条字符串,让你输出字符串中字符的全排列,输出的顺序要按它给的奇葩的字典序. 题解:要输出全排列,暴力dfs可以过,但要注意题目的字典序以及相同字符的情况.如果用next_permutati ...
- (转)ACM next_permutation函数
转自 stven_king的博客 这是一个求一个排序的下一个排列的函数,可以遍历全排列,要包含头文件<algorithm>下面是以前的笔记 (1) int 类型的next_permuta ...
- next_permutation函数
这是一个求一个排序的下一个排列的函数,可以遍历全排列,要包含头文件<algorithm>下面是以前的笔记 与之完全相反的函数还有prev_permutation (1) int 类 ...
- buaaoj230——next_permutation的应用
题目地址 简单的全排列输出,借用stl中的next_permutation就非常简单了. 关于next_permutation:(备忘,来源网络) /*这是一个求一个排序的下一个排列的函数,可以遍历全 ...
- 【STL】全排列生成算法:next_permutation
C++/STL中定义的next_permutation和prev_permutation函数是非常灵活且高效的一种方法,它被广泛的应用于为指定序列生成不同的排列. next_permutation函数 ...
- 算法之路 level 01 problem set
2992.357000 1000 A+B Problem1214.840000 1002 487-32791070.603000 1004 Financial Management880.192000 ...
- 【转】POJ百道水题列表
以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight ...
随机推荐
- 阻塞队列之一:BlockingQueue汇总
一.阻塞队列介绍 BlockingQueue 通常用于一个线程生产对象,而另外一个线程消费这些对象的场景.下图是对这个原理的阐述: 一个线程往里边放,另外一个线程从里边取的一个 BlockingQue ...
- EasyUI treegrid 删除一条或多条记录
function del_dg() { $.messager.defaults = { ok: "是", cancel: "否" }; var node = $ ...
- Oracle查询结果中的日期格式显示到毫秒数,如何去掉多余的数
@Temporal(TemporalType.TIMESTAMP) @Column(name="createTime",nullable=false) private Date c ...
- 20181104_C#线程之Thread_ThreadPool_使用Thread实现回到和带参数的回调
C# .net Framework多线程演变路径: 1.0 1.1 时代使用Thread 2.0 时代使用ThreadPool 3.0 时代使用Task 4.0 时代使用 ...
- 透过一个实例理解C++语言的explicit关键字
我们先看一段代码: 建立people.cpp 文件,然后输入下列内容:class People{ public: int age; explicit People (in ...
- MySQL 概念
MySQL 数据库:数据库是一个存储数据的仓库, 用在哪些领域:金融机构.游戏网站.购物网站.论坛网站 提供数据服务的软件 1.软件分类:MySQL.SQL_Server.Oracle.Mariadb ...
- 【BZOJ】4721: [Noip2016]蚯蚓 / 【洛谷】P2827 蚯蚓(单调队列)
Description 本题中,我们将用符号[c]表示对c向下取整,例如:[3.0」= [3.1」=[3.9」=3.蛐蛐国最近蚯蚓成灾了!隔壁跳 蚤国的跳蚤也拿蚯蚓们没办法,蛐蛐国王只好去请神刀手来帮 ...
- 记-cloudstack 更改二级存储
一.问题是由于当初把二级存储挂载到了根分区的文件系统内,并随着慢慢的模板的增加,容量越来越小. 1.先在cloud 网页界面禁用cloudstack区域 2.然后停止cloudstack-manage ...
- [安全分享]斗鱼&360补天沙龙分享-跨域资源那些事
[安全分享]斗鱼&360补天沙龙分享-跨域资源那些事 主要内容: 文件: http://scan.javasec.cn/补天&斗鱼-跨域资源那些事.pdf
- App切图命名规范
转自:http://www.uisdc.com/slice-rename-in-ui-design(略有修改) 关于切图命名的规范,我个人觉得关键是在于团队能够有一个统一的规则,所有成员严格遵守并且和 ...