poj 1002 487-3279
2016-12-06 19:49
465 查看
poj 1002 487-3279
题意:给你n个字符串,均可以化简成为标准的字符串,问化简后的标准字符串的具体串,和每种的标准串的个数。
题解:将n个字符串化为全数字的字符串,进行字典序排序后,输出答案时加上需要的‘-’即可。
题意:给你n个字符串,均可以化简成为标准的字符串,问化简后的标准字符串的具体串,和每种的标准串的个数。
题解:将n个字符串化为全数字的字符串,进行字典序排序后,输出答案时加上需要的‘-’即可。
#include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int N = 100010; int p[26] = {2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,7,8,8,8,9,9,9,9}; struct point { char a[8]; } ans ; bool cmp(point x, point y) { return strcmp(x.a,y.a) < 0; } int main() { int n; scanf("%d",&n); for(int i = 0; i < n; i++) { char s[100]; scanf("%s",s); int len = strlen(s); int k = 0; for(int j = 0; j < len; j++) { if(s[j] >= 'A' && s[j] <= 'Y') ans[i].a[k++] = p[s[j]-'A']+'0'; else if(s[j] == '-') continue; else ans[i].a[k++] = s[j]; } ans[i].a[k] = '\0'; } sort(ans,ans+n,cmp); bool pan = 1; int i = 0,j; while(i < n) { j = i; i++; while(i < n && strcmp(ans[i].a,ans[j].a) == 0) i++; if(i - j > 1) { for(int k = 0; k <= 6; k++) { if(k == 3) printf("-"); printf("%c",ans[j].a[k]); } printf(" %d\n",i-j); pan = 0; } } if(pan) puts("No duplicates."); return 0; }
相关文章推荐
- POJ1002:487-3279 神奇的TLE
- POJ 1002 487-3279
- poj1002 487-3279 解题报告
- poj1002 487-3279
- poj1002——487-3279
- POJ 1002 487-3279
- POJ 1002 487-3279 字符串处理
- poj_1002 487-3279 快速排序
- POJ 1002 487-3279 G++
- poj 1002 487-3279
- POJ 1002 487-3279
- POJ 1002 487-3279
- 北大poj-1002题-487-3279
- poj_1002_487-3279
- poj 1002 487-3279
- poj每日一题之1002(487-3279)
- POJ 1002 487-3279 Trie解读
- poj 1002 487-3279
- POJ 1002 487-3279
- POJ 1002 487-3279