博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVA156 Ananagrams
阅读量:7085 次
发布时间:2019-06-28

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

问题链接:。

题意简述输入一个文本文件,从中提取出一些单词输出,输出的单词按照文本文件中的原来样子输出(字母大小写不变)。对于所有的单词,若字母不分大小写,单词经过重排顺序,与其他单词相同,这些单词则不在输出之列。

问题分析用C++语言编写程序,可以练习使用STL的功能。。另外一点,C++编写程序效率会更高。

程序说明:使用了容器类map和vector。其他都是套路。

AC的C++语言程序如下:

/* UVA156 Ananagrams */#include 
#include
#include
#include
using namespace std;map
dict;vector
words;vector
ans;string getkey(const string& s){ string key = s; for(int i = 0; i < (int)key.length(); i++) key[i] = tolower(key[i]); sort(key.begin(), key.end()); return key;}int main(){ string s; while(cin >> s) { if(s[0] == '#') break; string key = getkey(s); if(dict.count(key) == 0) dict[key] = 0; dict[key]++; words.push_back(s); } for(int i=0; i<(int)words.size(); i++) if(dict[getkey(words[i])] == 1) ans.push_back(words[i]); sort(ans.begin(), ans.end()); for(int i=0; i<(int)ans.size(); i++) cout << ans[i] << "\n"; return 0;}

转载于:https://www.cnblogs.com/tigerisland/p/7564471.html

你可能感兴趣的文章
Spring Boot 整合 Thymeleaf 完整 Web 案例
查看>>
独家 | 手把手教你用scrapy制作一个小程序 !(附代码)
查看>>
彩虹表的概念
查看>>
云计算意义众多 博主总结七大特点
查看>>
iOS中 常用的mac终端指令汇总 技术分享
查看>>
VC++ .NET 2003 –安装和使用Boost 1.30和Blitz++0.6
查看>>
红海已现 透视2014国内公有云市场
查看>>
保持高增速 阿里云连续7个季度规模翻番
查看>>
苹果紧急发布新系统iOS 11.0.1 修复多种BUG
查看>>
输得太不光彩!Uber司机把算法当游戏
查看>>
亚信安全成为 “上海网络与信息安全监测预警平台” 首批发起单位
查看>>
浪潮HF系列固态存储的独门绝活儿
查看>>
“雪花”项目:Microsoft探索在.NET中实现手工内存管理
查看>>
构建基于容器的本机监控系统 应该注意什么?
查看>>
从CSE Asia 2016亚洲消费电子展看智能设备安全
查看>>
未来五年存储发展趋势猜想
查看>>
浪潮IPF2016宣布一系列举措背后的思考是什么?
查看>>
每一个程序员要遵守的一些优秀编程风格
查看>>
大数据化雨落地 BDA万唤始出来
查看>>
三头狗又来了 Windows再现毁灭级漏洞
查看>>