POJ 1002 487-3279
2013-09-30 11:46
260 查看
这道题的思路是:
首先利用char map[] = "2223334445556667-77888999-"; //ABCDEFGHIJKLMNOPQRSTUVWXYZ 对数据进行转换,转换之后的数据只包含-和数字,然后去掉字符串中的-,并重新添加上‘-’。最后排序,统计字符串的数据。
这道题木在最后输出的时候,由于统计的时候考虑疏忽,当num=2的时候,出现错误。
首先利用char map[] = "2223334445556667-77888999-"; //ABCDEFGHIJKLMNOPQRSTUVWXYZ 对数据进行转换,转换之后的数据只包含-和数字,然后去掉字符串中的-,并重新添加上‘-’。最后排序,统计字符串的数据。
#include <iostream> #include <cstdio> #include <vector> #include <string> #include <functional> #include <algorithm> using namespace std; char map[] = "2223334445556667#77888999#"; //ABCDEFGHIJKLMNOPQRSTUVWXYZ void visited(char &ch) // visit and format strings { if (ch >= 'A' && ch <= 'Z') ch=map[ch-'A']; // ch equals to its real number } void replace_m( string &s) { string::iterator it = s.begin(); for (; it != s.end(); it ++) { if (*it <='P' && *it >= 'A') { *it = '2'+(*it-'A')/3; } else if(*it >'P' && *it < 'Z') { *it = '7'+(*it-'Q')/3; } } } int main () { //freopen("1.txt","r",stdin); int num = 0; cin >> num; vector<string> svec; int cts = 0; string inpts; { while (num --) { cin >> inpts; inpts.erase(remove_if(inpts.begin(),inpts.end(),bind2nd(equal_to<char>(),'-')),inpts.end()); inpts.erase(remove_if(inpts.begin(),inpts.end(),bind2nd(equal_to<char>(),'Q')),inpts.end()); inpts.erase(remove_if(inpts.begin(),inpts.end(),bind2nd(equal_to<char>(),'Z')),inpts.end()); replace_m(inpts); svec.push_back(inpts); } sort (svec.begin(),svec.end()); string ss = *(svec.begin()); vector<string>::iterator it = svec.begin(); ++it; int sct = 1; int flag = 0; int tamp = 0; for (; it != svec.end(); it ++) { if (!ss.compare(*it)) { sct ++; tamp = 1; } else { if(sct >=2) { ss.insert(3,"-"); flag = 1; cout << ss <<' ' << sct <<endl; tamp = 0; } sct = 1; ss = *it; } } if(tamp && sct>=2) { ss.insert(3,"-"); flag = 1; cout << ss <<' ' << sct <<endl; tamp = 0; } if(!flag) cout<<"No duplicates."<<endl; } }
这道题木在最后输出的时候,由于统计的时候考虑疏忽,当num=2的时候,出现错误。
相关文章推荐
- poj 1002--487-3279
- POJ 1002 487-3279 map +暴力
- poj每日一题之1002(487-3279)
- POJ 1002 487-3279
- POJ 1002 487-3279
- [POJ]1002 487-3279
- POJ——1002 487-3279
- POJ 1002求487-3279解题报告——【PKU ACM】
- POJ 1002 解题报告 487-3279
- OpenJudge / POJ 1002 487-3279 解题报告 C++
- POJ 1002 487-3279 Trie题解
- POJ 1002 487-3279 - 字符串转换为数组
- 【poj1002】487-3279
- [c]poj1002 487-3279
- POJ1002 487-3279
- POJ 1002 487-3279
- POJ 1002 487-3279
- 【poj1002】487-3279 题解&代码(c++)
- poj 1002-487-3279
- 【poj1002】487-3279