uvaoj 156 Ananagrams map的基本使用
来源:互联网 发布:比较好的梵高传记知乎 编辑:程序博客网 时间:2024/06/01 09:07
uvaoj 156 Ananagrams map的基本使用
给定一些单词,找出满足如下条件的单词:该单词不能通过字母重排,得到文本中的另外其他单词,在判断满足条件时,不区分大小写,但输出时应该保留输入中的大小写。
我们可以将单词都变成小写,然后将单词中的字母按照大小排列,那些不满足条件的单词就会出现多次,而满足条件的单词只会出现一次,因为要记录之前的单词,可以通过map集合来映射。
代码如下:
/*************************************************************************> File Name: 156.cpp> Author: gwq> Mail: gwq5210@qq.com > Created Time: 2015年01月20日 星期二 14时59分25秒 ************************************************************************/#include <cmath>#include <ctime>#include <cctype>#include <climits>#include <cstdio>#include <cstdlib>#include <cstring>#include <map>#include <set>#include <queue>#include <stack>#include <string>#include <vector>#include <sstream>#include <iostream>#include <algorithm>#define INF (INT_MAX / 10)#define clr(arr, val) memset(arr, val, sizeof(arr))#define pb push_back#define sz(a) ((int)(a).size())using namespace std;typedef set<int> si;typedef vector<int> vi;typedef map<int, int> mii;typedef long long ll;const double esp = 1e-5;map<string, int> cnt;vector<string> words;string repr(const string &s){string ans = s;int len = s.length();for (int i = 0; i < len; ++i) {ans[i] = tolower(ans[i]);}sort(ans.begin(), ans.end());return ans;}int main(int argc, char *argv[]){string s;while (cin >> s) {if (s[0] == '#') {break;}words.pb(s);string r = repr(s);if (cnt.count(r) == 0) {cnt[r] = 0;}cnt[r]++;}vector<string> ans;int len = words.size();for (int i = 0; i < len; ++i) {if (cnt[repr(words[i])] == 1) {ans.pb(words[i]);}}sort(ans.begin(), ans.end());len = ans.size();for (int i = 0; i < len; ++i) {cout << ans[i] << endl;}return 0;}
0 0
- uvaoj 156 Ananagrams map的基本使用
- Ananagrams ---map的使用
- UVaOJ 156 - Ananagrams
- UVa-156-Ananagrams STL map容器的使用练习题
- uva156 Ananagrams (stl map的使用)
- UVA 156 Ananagrams(map,string的理解)
- UVa--156 Ananagrams (map)
- UVA 156 - Ananagrams (map)
- UVa 156 Ananagrams(STL,map)
- UVa 156 Ananagrams(STL,map)
- UVa-156 Ananagrams(map映射)
- UVA 156 Ananagrams map应用
- UVa 156 Ananagrams 【STL】【map】
- UVA 156 Ananagrams【map+set】
- uvaoj 10815 Andy's First Dictionary set的基本使用
- map函数的应用:UVa156-Ananagrams
- UVa - 156 - Ananagrams(STL - 映射map)
- UVA 156 Ananagrams(stl,map,set)
- Hadoop学习总结之五:Hadoop的运行痕迹
- gdb thread related command
- Code Jam-- New Lottery Game
- sql where 1=1和 0=1 的作用
- POJ 1113
- uvaoj 156 Ananagrams map的基本使用
- SQL 模糊查询
- LinearLayout的andrid:layout_weight属性的使用详解
- WordCountTopology 执行日志分析
- html解析器比较
- 将opencv3.0写成的代码在opencv2.4.9中运行出的错误error C4996: 'fopen':
- java生成excel
- gradle复习(2)-eclipse中添加依赖jar包
- ios项目中安装和使用CocoaPods