原题链接:

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=98&page=show_problem&problem=92

整体思路如下:先建立一个 multimap<排序的词,未排序的词> 来处理输入,完毕后将只有一个值的键放入一个set中,最后遍历set输出即可。切忌不要误用成 map, 因为 multimap 允许重复元素,map 不允许有重复

更多有关 map 与 multimap 的区别可以查看这篇博客:https://blog.csdn.net/c_base_jin/article/details/51501214

下面就奉上 AC 代码:

#include <algorithm>
#include <iostream>
#include <cstring>
#include <string>
#include <set>
#include <map> using namespace std; char ch[25], origin[25]; multimap <string, string> mmp;
set <string> con; int main(void)
{
int len, i;
while (scanf("%s", ch), ch[0] != '#') {
strcpy(origin, ch);
len = strlen(ch); for (int i = 0; i < len; i++)
if (isupper(ch[i]))
ch[i] = tolower(ch[i]); sort(ch, ch + len);
mmp.insert(make_pair(ch, origin));
} multimap <string, string>::iterator xp;
set <string>::iterator it;
for (xp = mmp.begin(); xp != mmp.end(); xp++)
if (mmp.count(xp -> first) == 1)
con.insert(xp -> second);
for (it = con.begin(); it != con.end(); it++)
puts((*it).c_str()); return 0;
}

UVA 156 Ananagrams (STL multimap & set)的更多相关文章

  1. UVa 156 Ananagrams(STL,map)

     Ananagrams  Most crossword puzzle fans are used to anagrams--groups of words with the same letters ...

  2. uva 156 - Ananagrams (反片语)

    csdn:https://blog.csdn.net/su_cicada/article/details/86710107 例题5-4 反片语(Ananagrams,Uva 156) 输入一些单词,找 ...

  3. UVA 156 Ananagrams ---map

    题目链接 题意:输入一些单词,找出所有满足如下条件的单词:该单词不能通过字母重排,得到输入文本中的另外一个单词.在判断是否满足条件时,字母不分大小写,但在输出时应保留输入中的大小写,按字典序进行排列( ...

  4. UVa 156 Ananagrams

    题意:给出一些单词,在这些单词里面找出不能通过字母重排得到的单词(判断的时候不用管大小写),然后按照字典序输出. 学习的紫书的map= = 将每一个单词标准化 先都转化为小写,再排序(即满足了题目中说 ...

  5. STL语法——映射:map 反片语(Ananagrams,UVa 156)

    Description Most crossword puzzle fans are used to anagrams--groups of words with the same letters i ...

  6. 【UVA - 156 】Ananagrams (set,map,vector)

    Ananagrams  Descriptions: Most crossword puzzle fans are used to anagrams--groups of words with the ...

  7. 反片语(Ananagrams,Uva 156)

    输入一些单词,找出所有满足如下条件的单词:该单词不能通过字母重排,得到输入文 本中的另外一个单词.在判断是否满足条件时,字母不分大小写,但在输出时应保留输入中 的大小写,按字典序进行排列(所有大写字母 ...

  8. Ananagrams UVA - 156

      Most crossword puzzle fans are used to anagrams - groups of words with the same letters in differe ...

  9. UVA 156:Ananagrams (vector+map+sort)

    题意:一大堆单词中间有空格隔开,以'#'结束输出,问只出现一次的的单词有哪些(如果两个具有相同的长度,相同的字母也算是相同的,不区分大小写,如:noel和lone属于一个单词出现两次).最后按照字典序 ...

随机推荐

  1. linux文件属性和系统信息

    文件属性 1.权限 权限指某一个用户针对某个文件所能做的操作 1.权限的种类 可读(r) 可写(w) 可执行(x) 无权限(-) 2.权限位 linux中的权限位分为三个部分,分别是属主.属组和其他人 ...

  2. HTTP状态码一览表

    常见Http状态码大全 2018年03月16日 11:36:31 阅读数:153 一些常见的状态码为: 200 - 服务器成功返回网页404 - 请求的网页不存在503 - 服务不可用详细分解: 1x ...

  3. 再识requests

    高级用法 本篇文档涵盖了 Requests 的一些高级特性. 会话对象 会话对象让你能够跨请求保持某些参数.它也会在同一个 Session 实例发出的所有请求之间保持 cookie, 期间使用 url ...

  4. 微信支付——沙箱调试环境getsignkey方法秘钥获取及常见问题说明

    官方文档 :https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=23_1 微信支付PC二维码支付:https://www.cnblogs ...

  5. Linux蓝牙库blueZ

    1.blueZ 官网 2.zigbee 网络库zigbee(可用在smart home devices)

  6. 【LeetCode】1101. The Earliest Moment When Everyone Become Friends 解题报告 (C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 并查集 日期 题目地址:https://leetcod ...

  7. 【LeetCode】295. Find Median from Data Stream 解题报告(C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 大根堆+小根堆 日期 题目地址:https://le ...

  8. MacOS使用Docker创建MySQL主主数据库

    主从同步配置可以参考上一篇MacOS使用Docker创建MySQL主从数据库 一.创建MySQL数据库容器配置文件对应目录 我们在当前用户下创建一组目录,用来存放MySQL容器配置文件,(Linux下 ...

  9. Codeforces 450E:Jzzhu and Apples(构造,数学)

    E. Jzzhu and Apples time limit per test: 1 seconds memory limit per test: 256 megabytes input: stand ...

  10. Shell实现文件内容批量替换的方法

    在Linux系统中,文件内容的批量替换同Windows平台相比要麻烦一点.不过这里可以通过Shell命令或脚本的方式实现批量替换的功能. 笔者使用过两个命令:perl和sed ,接下来会对其做出说明. ...