UVA156 反片语 Ananagrams

简介: UVA156 反片语 Ananagrams

题意翻译

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

输入样例

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
#

输出样例

Disk
NotE
derail
drIed
eye
ladder
soon


代码

#include<iostream>
#include<vector>
#include<map>
#include<string>
#include<algorithm>
using namespace std;
/*
题目思路
1.使用vector v1存储单词,以便后期使用
2.写一个函数:可以将单词变成小写,有序
3.使用map集合统计每个单词(函数处理后)的个数.
4.遍历vector v1如果  在map中出现的次数为1那么就找到啦满足题意的单词,再加到新的vector  v2中;
5.对v2进行排序,然后输出即可.
*/
string s;
vector<string> v1, v2;
map<string, int> m;
string low_sort(string s1) {
  for (int i = 0; i < s1.size(); i++) {
    s1[i] = tolower(s1[i]);
  }
  sort(s1.begin(), s1.end());
  return s1;
}
int main() {
  while (cin >> s && s[0] != '#') {
    v1.push_back(s);
    if (!m.count(low_sort(s))) {
      m[low_sort(s)] = 1;
    }
    else {
      m[low_sort(s)]++;
    }
  }
  for (int i = 0; i < v1.size(); i++) {
    if (m[low_sort(v1[i])] == 1) {
      v2.push_back(v1[i]);
    }
  }
  sort(v2.begin(), v2.end());
  for (int i = 0; i < v2.size(); i++) {
    cout << v2[i] << endl;
  }
  return 0;
}
目录
打赏
0
0
0
0
29
分享
相关文章
Uva10001 Garden of Eden
Uva10001 Garden of Eden
71 0
概率dp - UVA 11021 Tribles
Tribles  Problem's Link:  http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=33059   Mean:  有k个细菌,每个细菌只能存活一天,在死去之前可能会分裂出0,1,2....n-1个细菌,对应的概率为p0,p1,p2....pn-1。
841 0
uva 305 Joseph
点击打开链接uva 305 思路: 数学+打表 分析: 1 传统的约瑟夫问题是给定n个人和m,每次数m次把当前这个人踢出局,问最后留下的一个人的编号 2 这一题是前k个人是好人,后面k个是坏人。
1057 0
uva 1203 Argus
点击打开链接uva 1203 思路: 优先队列 分析: 1 题目要求前k个事件的编号,我们利用优先队列来维护即可 2 优先队列保存的是一个struct,因此我们需要重载 s.
1304 0
uva10859Placing Lampposts
题意:给你一个n个点m条边的无向无环图,在尽量少的节点上放灯,使得所有边都被照亮,每盏灯将照亮以他为一个端点的所有边,在灯的总数最小的前提下,被两盏灯同时照亮的边数应当尽量大。 分析:d(i,j)表示i的父节点放灯的状态为j(1表示放,0不放),以i为根的树的最小x值     x=Ma+c, a表...
799 0
UVA11437
题目: In the picture below you can see a triangle ABC. Point D, E and F divides the sides BC, CA and AB into ratio 1:2 respectively.
729 0
uva10465Homer Simpson
题意:HM先生喜欢吃汉堡,有两种汉堡,每种无限多个,吃完第一种的汉堡一个需要m时间,第二种需要n时间,HM先生饭量很大可以不停的吃,给定一个时间t,在t时间段内希望HM先生吃尽量多的汉堡,并且空余出来的时间要尽量少 分析:是一个只有两种元素的完全背包问题。
733 0
UVA3644
题意:有一些简单化合物,每个化合物都由两种元素组成,每个元素用一个大写字母组成,你是一个装箱工人,从实验员那里按照顺序依次把一些简单化合物装到车上,但是这里存在一个安全隐患,如果车上存在k个简单化合物,正好包含k中元素,那么他们将组成一个易爆易燃的化合物,为了安全起见,每当你拿到一个化合物的时候,如果他和已装车的化合物形成易爆化合物,你就应当拒绝装车,否则就应该装车,编程输出有多少个没有装车的化合物。
520 0
UVA3295
题意:给出一个a*b的网格,在网格上取不共线的三点构成三角形,求三角形总数。分析:就是一一道简单的组合数计算题目,设总结点数为n,则取三个节点的个数为C(n,3),然后减去横向、竖向、斜向的三点共线的个数即可,斜线三点共线等价于所枚举的矩形的长宽成倍数关系,即gcd不为1 代码如下: #incl...
667 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等