http://poj.org/problem?id=1002
/*
* 1. 用TreeMap<String,Integer>;
* 2. 接收字符串,逐个判断,数字直接相加,字符转换成数字,‘-’不管,组成的字符串放到Map
* 3. 输出Map中value>1的项
*
* */
import java.util.*;
public class Main {
public static void main(String[] args) {
//jdk1.6以下的不能这样定义 TreeMap <String,Integer> map = new TreeMap<>();
TreeMap <String,Integer> map = new TreeMap<String,Integer>();
Scanner cin = new Scanner(System.in);
int t = cin.nextInt();
String s,str;
char ch;
int i;
while(t--!=0){
s = cin.next();
str = "";
for(i=0;i<s.length();i++){
ch = s.charAt(i);
if(ch>='0' && ch<='9') str += ch+"";
else if(ch=='-') continue;
else{
switch (ch) {
case 'A':case 'B':case 'C': str += "2"; break;
case 'D':case 'E':case 'F': str += "3"; break;
case 'G':case 'H':case 'I': str += "4"; break;
case 'J':case 'K':case 'L': str += "5"; break;
case 'M':case 'N':case 'O': str += "6"; break;
case 'P':case 'R':case 'S': str += "7"; break;
case 'T':case 'U':case 'V': str += "8"; break;
case 'W':case 'X':case 'Y': str += "9"; break;
}
}
if(str.length() == 3) str += "-";
}
int cnt;
if(map.containsKey(str)) {
cnt = map.get(str)+1;
map.remove(str);
map.put(str, cnt);
}else{
map.put(str, 1);
}
}
Iterator<String> it = map.keySet().iterator();
String key;int num;
int flag = 0;
while(it.hasNext()){
key = it.next();
num = map.get(key);
if( num>1 ){
flag = 1;System.out.println(key+" "+ num);
}
}
if(flag==0)System.out.println("No duplicates.");
}
}