POJ 1002 487-3279
2014-05-18 03:36
330 查看
POJ 1002 487-3279
题意:给定一些数字与字母的对应关系,然后给一串电话号码,依照对应关系,找出出现次数大于一的电话号码,按题目所需的标准形式输出,电话号码按字典序输出。
思路:先把对应关系存HashMap里,然后读入号码时由于"-"可能出现多次,就s=scan.next().replace("-","");最后再在合适位置添加“-”,用replaceAll("-","");耗时较多~,所有电话号码存入TreeMap,最后遍历,若value大于1,则输出,若无输出,则输出"No duplicates."。
AC代码:
题意:给定一些数字与字母的对应关系,然后给一串电话号码,依照对应关系,找出出现次数大于一的电话号码,按题目所需的标准形式输出,电话号码按字典序输出。
思路:先把对应关系存HashMap里,然后读入号码时由于"-"可能出现多次,就s=scan.next().replace("-","");最后再在合适位置添加“-”,用replaceAll("-","");耗时较多~,所有电话号码存入TreeMap,最后遍历,若value大于1,则输出,若无输出,则输出"No duplicates."。
AC代码:
import java.util.HashMap; import java.util.Scanner; import java.util.TreeMap; import java.util.Map.Entry; class Main { static Scanner scan=new Scanner(System.in); public static void main(String[] args) { HashMap<Character,Integer> letter=new HashMap<Character,Integer>(); for(int i=0;i<16;i++) letter.put((char)(i+65),(i+6)/3); for(int i=17;i<25;i++) letter.put((char)(i+65),(i+5)/3); TreeMap<String,Integer> phone=new TreeMap<String,Integer>(); int n=scan.nextInt(),length=0; char c; String s=""; for(int i=0;i<n;i++) { s=scan.next().replace("-",""); length=s.length(); for(int j=0;j<length;j++) { c=s.charAt(j); if(c>='A'&&c<='Z') s=s.substring(0,j)+letter.get(c)+s.substring(j+1); } phone.put(s,phone.get(s)==null?1:phone.get(s)+1); } for(Entry<String,Integer> entry:phone.entrySet()) if(entry.getValue()>1) { System.out.println(entry.getKey().substring(0,3)+"-"+entry.getKey().substring(3) +" "+entry.getValue()); length=0; } if(length!=0) System.out.println("No duplicates."); } }
相关文章推荐
- 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 G++
- POJ 1002 487-3279
- POJ 1002求487-3279解题报告——【PKU ACM】
- POJ 1002 解题报告 487-3279
- poj 1002 487-3279
- poj每日一题之1002(487-3279)
- POJ 1002 487-3279 Trie解读
- POJ 之 1002 :487-3279
- 【poj1002】487-3279
- POJ 1002 487-3279
- POJ解题报告——1002 487-3279
- POJ 一 1002 487-3279
- POJ1002 487-3279
- POJ 1002 487-3279 中文