POJ2159解题报告
2015-03-07 00:00
453 查看
英文题鸭梨山大。读了很久题才读明白,但是没有看到重要的地方,导致WA。
主要题意就是介绍2种加密方式,第一种是将每个字母ascii加相同的值(注意,不一定加1,只是例子是加1),超过Z返回A。
第二种就是将字符串打乱(不一定是按照题干的序列打乱)。
然后这个题就是统计一下各个字符出现的频率的序列是否相同就可以了。而不被在意那些字符是什么频率。这个方法可能不是对所有的数据都判断正确,不过还是AC了。
主要题意就是介绍2种加密方式,第一种是将每个字母ascii加相同的值(注意,不一定加1,只是例子是加1),超过Z返回A。
第二种就是将字符串打乱(不一定是按照题干的序列打乱)。
然后这个题就是统计一下各个字符出现的频率的序列是否相同就可以了。而不被在意那些字符是什么频率。这个方法可能不是对所有的数据都判断正确,不过还是AC了。
#include <iostream> #include <string> #include <map> #include <vector> #include <algorithm> using namespace std; int main() { //freopen("1.txt", "r",stdin); string str1, str2; cin >> str1 >> str2; if(str2.size() != str1.size()) { cout << "NO" << endl; return 0; } map<char, int> charMap1; map<char, int> charMap2; for(size_t i = 0; i < str1.size(); ++i) charMap1[str1[i]]++; for(size_t i = 0; i < str2.size(); ++i) charMap2[str2[i]]++; vector<int> vec1, vec2; for(map<char, int>::iterator it = charMap1.begin(); it != charMap1.end(); ++it) vec1.push_back((*it).second); for(map<char, int>::iterator it = charMap2.begin(); it != charMap2.end(); ++it) vec2.push_back((*it).second); sort(vec1.begin(), vec1.end()); sort(vec2.begin(), vec2.end()); if(vec1 == vec2) cout << "YES" << endl; else cout << "NO" << endl; return 0; }
相关文章推荐
- POJ-2159-Ancient Cipher-解题报告
- POJ 2159(古代加密) 解题报告
- POJ 2159(古代加密) 解题报告
- POJ2159解题报告
- 【原】 POJ 2159 Ancient Cipher 题意万岁 解题报告
- 【原】 POJ 2159 Tree Recovery 解题报告
- POJ 2159 解题报告
- POJ 2159 解题报告
- POJ 2159 Ancient Cipher 解题报告
- poj2159解题报告
- POJ-3009 Curling 2.0 解题报告(搜索) 冰壶游戏
- poj1611解题报告
- POJ 2406 Power Strings 解题报告(哈希)
- POJ 1200Crazy Search解题报告
- POJ 3468.A Simple Problem with Integers 解题报告
- poj 2284 That Nice Euler Circuit 解题报告
- POJ 1042 解题报告
- POJ 2742 统计字符数 解题报告
- poj1083 解题报告(poj 1083 analysis report)
- POJ 2757 最长上升子序列 解题报告