POJ 1002 487-3279(map应用)
来源:互联网 发布:淘宝液晶显示器 编辑:程序博客网 时间:2024/06/06 20:48
用map+string写的,减少代码量
本题有几个坑:
1.输入字符串至少要开到50
2.要考虑电话号码中有0的情况,比如000-0000
map插入后会自动按字典序排序。
迭代器定义方法:
map<string,int>::iterator p;
代码:
#include <iostream>#include <cstdio>#include <cstring>using namespace std;#include <algorithm>#include <map>#include <string>map<string,int> Num;string Hash(char c){if(c=='A'||c=='B'||c=='C') return "2";if(c=='D'||c=='E'||c=='F') return "3";if(c=='G'||c=='H'||c=='I') return "4";if(c=='J'||c=='K'||c=='L') return "5";if(c=='M'||c=='N'||c=='O') return "6";if(c=='P'||c=='R'||c=='S') return "7";if(c=='T'||c=='U'||c=='V') return "8";if(c=='W'||c=='X'||c=='Y') return "9";}int main(){int N;scanf("%d",&N);for(int i=0;i<N;i++){char s[60];scanf("%s",s);int len=strlen(s);string num="";for(int i=0;i<len;i++){if(s[i]=='-') continue;if(isdigit(s[i])){num+=s[i];}else num+=Hash(s[i]);}Num[num]++;}map<string,int>::iterator p;bool flag=0;for(p=Num.begin();p!=Num.end();p++){string n=(*p).first;if(Num[n]<=1) continue;flag = 1;for(int i=0;i<3;i++){cout<<n[i];}printf("-");for(int i=3;i<7;i++) cout<<n[i];printf(" %d\n",Num[n]);}if(!flag) printf("No duplicates.");return 0;}
0 0
- POJ 1002 487-3279(map应用)
- POJ-1002 487-3279(map)
- POJ 1002 487-3279(Map)
- POJ 1002 487-3279(map)
- poj 1002 487-3279 map的使用
- poj 1002 487-3279(使用STL map)
- POJ 1002 487-3279 MAP||Sort
- POJ 1002 487-3279 map +暴力
- poj 1002 487-3279之map解法
- poj 3096(map的应用)
- poj 2153 map简单应用
- POJ 2418 Hardwood Species(STL中map的应用)
- poj 1002 stl map
- POJ 2153 Rank List map的应用
- POJ 2503 ——map应用
- poj 2503(map)
- poj1002 487-3279(STL map应用)
- 【String+Map版】从poj 1002——487-3279的STL做法和若干陷阱来分析MAP
- 用网页浏览器查看并使用Android developer服务
- 算法分析与设计复习-回溯法和分支限界法
- uvalive 4328(贪心)
- UIImageView的一些属性
- 1-2论述RFID与物联网关系
- POJ 1002 487-3279(map应用)
- 模式匹配 KMP C语言算法实现
- UIWindow的一些属性
- 杭电1053~~Entropy
- yum 命令安装GCC
- 【LeetCode】169.Majority Element
- 欢迎使用CSDN-markdown编辑器
- bzoj1468: Tree 点分治
- 计算几何:点积的模板