UVA 156 Ananagrams ---map
2024-10-18 11:29:19
题意:输入一些单词,找出所有满足如下条件的单词:该单词不能通过字母重排,得到输入文本中的另外一个单词。在判断是否满足条件时,字母不分大小写,但在输出时应保留输入中的大小写,按字典序进行排列(所有大写字母在所有小写字母的前面)。
刘汝佳算法竞赛入门经典(第二版)P113
#include <cstdio>
#include <map>
#include <set>
#include <string>
#include <vector>
#include <algorithm>
#include <cctype>
#include <iostream>
using namespace std;
string repr(const string& s)
{
string ans=s;
for(int i=;i<ans.length();i++)
ans[i]=tolower(ans[i]);
sort(ans.begin(),ans.end());
return ans;
}
map<string,int> cnt;
vector<string> words;
int main()
{
int n=;
string s;
while(cin>>s)
{
if(s[]=='#') break;
words.push_back(s);
string r=repr(s);
if(!cnt.count(r)) cnt[r]=;
cnt[r]++;
}
vector<string> ans;
for(int i=;i<words.size();i++)
if(cnt[repr(words[i])]==)
ans.push_back(words[i]);
sort(ans.begin(),ans.end());
for(int i=;i<ans.size();i++)
cout<<ans[i]<<endl;
return ;
}
/*
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
# */
最新文章
- [摘]在ASP.NET MVC中使用DropDownList
- ue4 c++ 接口
- chaper3_exerise_Uva1568_Molar_Mass_分子量
- 部署新浪SAE web.py Session及图片上传等问题注意事项
- c++多线程同步使用的对象
- 【LeetCode】118. Pascal&#39;s Triangle
- PHP 设计模式阅读清单
- c# 中的封装、继承、多态详解
- CAS实现单点登录
- 终于不再在懵逼mysql原生语句,orm超级登场
- VMWare 虚拟机设置网络访问
- ORA-01440 要减小精度或者标度.则要修改的列必须为空.
- asp.net mvc session锁问题
- linux面试题-基础题1
- 通达OA在centos系统中快速部署文档(web和数据库)
- Linux学习 : Socket 网络编程入门
- python学习 day15 (3月20日)----time
- [转]java 自动装箱与拆箱
- docker-compose 管理多个docker容器实例
- python--列表内建函数的方法