码迷,mamicode.com
首页 > 其他好文 > 详细

UVa 156 Ananagrams

时间:2015-02-20 17:26:37      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:

题意:给出一些单词,在这些单词里面找出不能通过字母重排得到的单词(判断的时候不用管大小写),然后按照字典序输出。

学习的紫书的map= =

将每一个单词标准化 先都转化为小写,再排序(即满足了题目中说的不能通过字母重排这个条件) 然后记录出现次数,将出现次数为1的储存再输出

 

话说这一题的标准化要好好学学= =(字母重排用排序来做= =)

技术分享
 1 #include<iostream>  
 2 #include<cstdio>  
 3 #include<cstring> 
 4 #include<vector> 
 5 #include<algorithm> 
 6 #include<cctype> 
 7 #include<set>
 8 #include<map>
 9 using namespace std;
10 
11 map<string,int> cnt;
12 vector<string> words;
13 vector<string> ans;
14 
15 string repr(const string& s)
16 {
17     string ans=s;
18     for(int i=0;i<ans.length();i++)
19     ans[i]=tolower(ans[i]);
20     sort(ans.begin(),ans.end());
21     return ans;
22 }
23 
24 int main()
25 {
26     string s;
27     while(cin>>s)
28     {
29         if(s[0]==#) break;
30         words.push_back(s);
31         string r=repr(s);
32         if(!cnt.count(r)) cnt[r]=0;
33         cnt[r]++;
34     }
35     for(int i=0;i<words.size();i++)
36         if(cnt[repr(words[i])]==1) ans.push_back(words[i]);
37         
38         sort(ans.begin(),ans.end());
39         for(int i=0;i<ans.size();i++)
40         cout<<ans[i]<<"\n";
41     return  0;
42 }
View Code

 

UVa 156 Ananagrams

标签:

原文地址:http://www.cnblogs.com/wuyuewoniu/p/4296585.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!