题目描述:

输入一些单词,找出所有满足如下条件的单词:该单词不能通过字母重排,得到输入文本中的另一个单词。在判断是否满足条件时,字母不区分大小写,但在输出时应保留输入中的大小写,按字典序进行排列(所有大写字母在所有的小写字母的前面)。

#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 ;
}

最新文章

  1. ASP.NET MVC5+EF6+EasyUI 后台管理系统(22)-权限管理系统-模块导航制作
  2. web设计页面跳转的方法
  3. 多线程NSThread基本用法
  4. hibernate-HQL连接查询
  5. Welcome to LED Control Wiki
  6. sql except 用法,找两个表中非共同拥有的
  7. POJ 1436 Horizontally Visible Segments
  8. C#中多线程的简单应用
  9. session cookie 相结合实现
  10. 解决error:could not open ...jvm.cfg
  11. HTML5 格式化、样式、链接、表格
  12. ES6 函数的扩展1
  13. 【SoDiaoEditor电子病历编辑器】编辑器支持移动化
  14. 417 事件、监听、jQuery、轮播手动
  15. 【Docker】(1)---Docker入门篇
  16. asp.net无限递归
  17. 去中心化存储项目终极指南 | Filecoin, Storj 和 PPIO 项目异同
  18. socket学习
  19. K - Heavy Cargo dijkstar
  20. java中的异常区分

热门文章

  1. git本地仓库管理远程仓库
  2. ubuntun下安装Fiddler
  3. db2数据库还原
  4. Windows磁盘MBR结构详解
  5. mybatis中查询结果进行分组
  6. DatagramSocket总是发送UDP数据后无法接收数据
  7. 每天一个Linux命令(32)date命令
  8. poj 1144 Network 【求一个网络的割点的个数 矩阵建图+模板应用】
  9. pathinfo()的用法
  10. ruanjiangongcheng1