Ananagrams UVa156
来源:互联网 发布:火牛软件网 编辑:程序博客网 时间:2024/06/05 00:51
还是汝佳的题 划重点 “映射map” 以及学习思路
大致题意:输入一些单词,找出所有满足:该单词不能通过字母重排,得到输入文本的另外一个单词。在判断是否满足条件时,字母不分大小写,但在输出时应保留大小写,并按字母序进行排列
思路:①关键是重排是否相等 通过把每个单词标准化 全部小写 并排序
②检验是否满足题意 不需要全部读取string 可以读取一个检查一遍 只要没出现过该值,即可以存入vector 熟悉这种写法
③注意输出要按照大小写 存入vector时要存原来的值
Sample Input
ladder came tape soon leader acme RIDE lone Dreis peat
ScAlE orb eye Rides dealer NotE derail LaCeS drIed
noel dire Disk mace Rob dries
#
Sample Output
Disk
NotE
derail
drIed
eye
ladder
soon
#include <iostream>#include<vector>#include<map>#include<algorithm>#include<cctype>using namespace std;map<string,int> cnt;vector<string> word;string repr(const string& s);int main(int argc, char *argv[]){ string s; while(cin>>s) { if(s[0] =='#') break; word.push_back(s); string temp=repr(s); if(!cnt.count(temp)) cnt[temp]=0; cnt[temp]++;//第一次出现 count==0 以后加一 即实现 第一次出现计数为1 以后再出现则加一 } vector<string> ans; for(int i=0;i<word.size();i++) if(cnt[repr(word[i])]==1)//注意cnt的键类型是string ans.push_back(word[i]); //而vector<string> word sort(ans.begin(),ans.end()); for(int i=0;i<ans.size();i++) cout<<ans[i]<<endl; return 0;}string repr(const string& s){ string a=s; for(int i=0;i<a.length();i++) a[i]=tolower(a[i]); sort(a.begin(),a.end()); return a;}
0 0
- UVa156 Ananagrams
- UVA156 Ananagrams
- Ananagrams uva156
- UVA156 - Ananagrams
- UVA156-Ananagrams
- UVA156-Ananagrams
- UVA156 Ananagrams
- UVA156 Ananagrams
- Ananagrams Uva156
- Ananagrams UVa156
- uva156 Ananagrams
- UVa156 Ananagrams,map
- Uva156——Ananagrams
- 反片语 Ananagrams,UVa156
- UVA156 Ananagrams(字符串处理)
- uva156 Ananagrams (stl map的使用)
- UVA156-5.4-Ananagrams-映射(map)
- map函数的应用:UVa156-Ananagrams
- [学习总结]20161206
- Java读取文件中的内容
- 编译安装LAMP之MySQL
- PHP图片裁剪
- git和TortoiseGit安装
- Ananagrams UVa156
- meta的含义
- 编译安装LAMP之PHP
- 161205 - Maximum likelihood estimation for linear regression 最大似然线性回归
- Linux 文件系统实现代码
- 杂想四--思维需要材料
- NGUI Draw Call优化
- 使用GMap控件读取.shp多边形文件(shapefile)
- Structure Note: CAP, BASE and ACID