您的位置:首页 > 其它

Uva156 map容器的使用 sortvecor And map.count

2016-07-30 09:57 399 查看

题目连接

http://acm.hust.edu.cn/vjudge/problem/297728

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

题意

对一堆字符串进行判断,找出其中没有把单词重组之后仍存在于这堆字符串中的字符串。例如came与acme就不行,可以重组得到。

题解

string可以直接sort得到按字典序排序的单词,map.count(1)可以计数key出现的次数,vector< string >按sort之后得到按字典序排序的字符串。

代码

#include<bits/stdc++.h>
using namespace std;
map<string,int> s;
vector<string>words;
string tr(string &s)
{   string ss=s;
for(int i=0;i<ss.length();i++)
{
ss[i]=tolower(ss[i]);
}
sort(ss.begin(),ss.end());
return ss;
}

int main()

{
string st;
while(cin>>st)
{
if(st[0]=='#')break;
string r=tr(st);
words.push_back(st);
if(s.count(r)==0)s[r]=1;
else s[r]++;
}
vector<string>ans;
for(int i=0;i<words.size();i++)
{
if(s[tr(words[i])]==1)ans.push_back(words[i]);
}
sort(ans.begin(),ans.end());
for(int i=0;i<ans.size();i++)
{
cout<<ans[i]<<endl;
}
return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: