统计不同的单词(map应用)
2024-08-28 19:19:43
题目描述:
输入一些单词,找出所有满足如下条件的单词:该单词不能通过字母重排,得到输入文本中的另一个单词。在判断是否满足条件时,字母不区分大小写,但在输出时应保留输入中的大小写,按字典序进行排列(所有大写字母在所有的小写字母的前面)。
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
#include<cctype>
#include<map>
using namespace std;
map<string,int> cnt;
vector<string> words;
//对单词进行"标准化"
string repr(const string& s)
{
string cs=s;
for(int i=;i<cs.length();i++)
{
cs[i]=tolower(cs[i]);
}
sort(cs.begin(),cs.end());
return cs;
}
int main()
{
string s;
while(cin>>s)
{
if(s[]=='#') break;
words.push_back(s);
string cs=repr(s);
if(!cnt.count(cs)) cnt[cs]=;
cnt[cs]++;
}
vector<string> ans;
for(int i=;i<words.size();i++)
{
if(cnt[repr(words[i])]==) ans.push_back(words[i]);//若想不到"标准化",则发挥不到map的效果
}
sort(ans.begin(),ans.end());
for(int i=;i<ans.size();i++)
{
cout<<ans[i]<<endl;
}
return ;
}
最新文章
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(22)-权限管理系统-模块导航制作
- web设计页面跳转的方法
- 多线程NSThread基本用法
- hibernate-HQL连接查询
- Welcome to LED Control Wiki
- sql except 用法,找两个表中非共同拥有的
- POJ 1436 Horizontally Visible Segments
- C#中多线程的简单应用
- session cookie 相结合实现
- 解决error:could not open ...jvm.cfg
- HTML5 格式化、样式、链接、表格
- ES6 函数的扩展1
- 【SoDiaoEditor电子病历编辑器】编辑器支持移动化
- 417 事件、监听、jQuery、轮播手动
- 【Docker】(1)---Docker入门篇
- asp.net无限递归
- 去中心化存储项目终极指南 | Filecoin, Storj 和 PPIO 项目异同
- socket学习
- K - Heavy Cargo dijkstar
- java中的异常区分