这题比较简单,就是对电话号码的字符串处理并排序输出,但是实现时有几个注意的地方

1、用map存储比较方便,可以自动根据string的排序规则排序,而且题目数据恰好是<string,int>的K-V存储特点。

2、用另一个字符串重新拼接待输出地字符串比直接对输入字符串进行替换移位等操作要方便。

3、注意字符和数字的ASCII的转化。

4、‘-’的加入可以在输出的时候,输到第4个字符的时候先输出‘-’。

5、map,set,vector,deque,list等容器要熟练使用,可以参考http://www.cplusplus.com/和MSDN的文档。

#include <iostream> #include <string> #include <map> using namespace std; int LetterToNum(char c){ int res; if(c < 'Q'){ res = (int(c)-65+6)/3; } else{ res = (int(c)-81+21)/3; } return res; } int main(int argv,char *argc){ int i; long counter; bool outflag = false; string temps; string outs(""); map<string, int> mapNum; map<string , int>::iterator iter; string::iterator it; cin>>counter; while(counter--){ cin>>temps; for(it = temps.begin();it < temps.end();it++){ if(*it >= 'A' && *it < = 'Z'){ outs += LetterToNum(*it) + '0'; } if(*it >= '0' && *it < = '9'){ outs += *it; } if(*it == '-'){ continue; } } mapNum[outs]++; outs=""; } for(iter = mapNum.begin(); iter != mapNum.end(); iter++) { if(iter->second > 1){ for(i=0;i<iter ->first.size();i++){ if(i == 3) cout< <'-'; cout<<iter->first[i]; } cout< <" "<<iter->second<<endl; outflag = true; } } if(!outflag) cout<<"No duplicates."<<endl; return 0; }

转载于:https://www.cnblogs.com/yangliu/archive/2011/12/21/2298428.html

POJ 1002 电话号码字符串处理相关推荐

  1. 字符串专题:map POJ 1002

    第一次用到是在'校内赛总结'扫地那道题里面,大同小异 map<string,int>str 可以专用做做字符串的匹配之类的处理 string donser; str [donser]++ ...

  2. 一个字典树问题--电话号码转化问题(POJ 1002 487-3279)

    字典树,又称为单词查找树,Trie树.是一种用于快速检索多叉树的结构.典型应用于统计,排序和保存大量字符串.利用字符串的前缀来减少存储空间,减少无谓的比较,提高查询效率. 字典树根节点不包含任何数据, ...

  3. POJ 1002 解题分析

    Technorati 标签: ACM,POJ 题目描述 题目链接 POJ 1002 487-3279 Time Limit: 2000MS Memory Limit: 65536K Total Sub ...

  4. POJ 1159 Palindrome(字符串变回文:LCS)

    POJ 1159 Palindrome(字符串变回文:LCS) http://poj.org/problem? id=1159 题意: 给你一个字符串, 问你做少须要在该字符串中插入几个字符能是的它变 ...

  5. POJ 1002 487-3279

    2019独角兽企业重金招聘Python工程师标准>>> 487-3279 Time Limit: 2000MS Memory Limit: 65536K Total Submissi ...

  6. POJ 1002题 解题报告

    这个是超时版的: #include<iostream> #include<string> using namespace std; typedef struct Telepho ...

  7. [每日一题] 73. 电话号码(字符串、set)

    1. 题目来源 链接:电话号码 来源:牛客网 2. 题目说明 上图是一个电话的九宫格,如你所见一个数字对应一些字母,因此在国外企业喜欢把电话号码设计成与自己公司名字相对应.例如公司的Help Desk ...

  8. poj 2503(字符串hash)

    解题思路(copy别人的):通过ELFhash函数来做.冲突处理则是用到链表的方法. #include <iostream> #include <fstream> #inclu ...

  9. 企业喜欢用容易被记住的电话号码(树解法)

    一个字典树有关问题-电话号码转化有关问题(POJ 1002 487-3279) 转自  http://www.myexception.cn/program/1264292.html 转自  http: ...

  10. POJ题目分类(按初级\中级\高级等分类,有助于大家根据个人情况学习)

    本文来自:http://www.cppblog.com/snowshine09/archive/2011/08/02/152272.spx 多版本的POJ分类 流传最广的一种分类: 初期: 一.基本算 ...

最新文章

  1. iOS开发系列--C语言之存储方式和作用域
  2. 计算机视觉的监控系统研究现状,基于计算机视觉的监控系统的研究
  3. 一文了解 AI 改变生活的 14 种姿势
  4. android系统签名一样不,解决Android应用签名和系统不一致的问题
  5. 亚马逊平板刷机Linux系统,亚马逊平板刷机步骤盘点【图解】
  6. 数字后端设计中的时钟
  7. 网络资源大搜索(转)
  8. 回顾一年的工作历程_回顾历程、总结经验、展望未来
  9. python中的ide是什么意思_用于Python的IDE是什么?
  10. 宽搜入门代码模板详解 HDOJ1253
  11. Python多维数组,已知多科成绩求英语成绩最高的学生名
  12. 路由器密码重置(更改寄存器的值)
  13. 【Excel】使用宏处理重复操作示例 -- 录制分列操作
  14. 家中为什么要用软路由
  15. 为什么我总写 Bug ?
  16. android Camera 设置焦距
  17. ###好好好好好########呼叫中心FAQ
  18. html论文参考文献m,论文与排版
  19. Python 学习7-魔方方法
  20. spring-data-elasticsearch suggest实现错词纠正和自动补全

热门文章

  1. vxp grandle 自动更新应用
  2. 使用脚本 Nodesource快速安装nodejs环境
  3. 21. 包含min函数的栈(C++版本)
  4. 19. Treat class design as type design
  5. JAVA读锁不使用效果一样_为什么Java的同步集合不使用读/写锁?
  6. linux持续检测进程脚本,用于检测进程的shell脚本代码小结
  7. spf打包解包_SPF’校园管理项目实训-1
  8. 实战CSS:苏宁商城静态实现
  9. php把时间加一天,php如何在某個時間上加一天?一小時? 時間加減(轉)
  10. java lower_Java TreeSet lower()用法及代码示例