这个题目主要是涉及进行电话号码的转换,使用TreeMap来对电话号码进行统计以及排序。
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;
public class Main {
private static Map<Character,Character> map = new HashMap<Character, Character>();
static {
map.put('A','2');
map.put('B','2');
map.put('C','2');
map.put('D','3');
map.put('E','3');
map.put('F','3');
map.put('G','4');
map.put('H','4');
map.put('I','4');
map.put('J','5');
map.put('K','5');
map.put('L','5');
map.put('M','6');
map.put('N','6');
map.put('O','6');
map.put('P','7');
map.put('R','7');
map.put('S','7');
map.put('T','8');
map.put('U','8');
map.put('V','8');
map.put('W','9');
map.put('X','9');
map.put('Y','9');
}
public static void main(String args[]) throws Exception
{
Scanner cin=new Scanner(System.in);
int count = cin.nextInt();
cin.nextLine();
Map<String,Integer> phoneToCountMap = new TreeMap<String, Integer>();
for(int idx = 0;idx < count;idx++){
String rawPhone = cin.nextLine();
String standardPhone = convertToStandardPhone(rawPhone);
int phoneCount = 0;
if(phoneToCountMap.containsKey(standardPhone)){
phoneCount = phoneToCountMap.get(standardPhone);
}
phoneCount++;
phoneToCountMap.put(standardPhone,phoneCount);
}
int dupCount = 0;
for (Map.Entry<String, Integer> stringIntegerEntry : phoneToCountMap.entrySet()) {
int phoneCount = stringIntegerEntry.getValue();
if(phoneCount > 1){
dupCount++;
System.out.println(stringIntegerEntry.getKey()+" "+stringIntegerEntry.getValue());
}
}
if(dupCount == 0){
System.out.println("No duplicates.");
}
}
private static String convertToStandardPhone(String rawPhone){
char[] charArray = rawPhone.toCharArray();
StringBuilder builder = new StringBuilder("");
for (char c:charArray){
if(c == '-'){
continue;
}
if(map.containsKey(c)){
c = map.get(c);
}
if(builder.length() == 3){
builder.append('-');
}
builder.append(c);
}
return builder.toString();
}
}
分享到:
相关推荐
East Central North America 1999。50字50字50字50字50字50字50字50字50字50字50字50字50字50字50字50字50字50字50字50字50字50字50字50字50字50字50字50字50字50字50字50字50字50字50字50字50字50字50字50字50字50...
### POJ 1002 487-3279 解题报告 #### 题目背景与概述 本题目属于电话号码处理问题,主要考查字符串处理、哈希表应用以及排序等相关算法知识。题目描述了一个有趣的场景:为了方便记忆,企业往往希望自己的电话...
标题中的"POJ1002-487-3279【Hash+Qsort】"是指一个编程挑战题目,通常在在线编程平台上出现,比如北京大学的Peking Online Judge (POJ)。这个题目结合了哈希表(Hash)和快速排序(Qsort)两种算法来解决问题。哈希...
487-3279 Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 102808 Accepted: 17241 Description Businesses like to have memorable telephone numbers. One way to make a telephone number ...
如题所示,亲测可用。电话号码查重,不会的同学可以参考下,会做的同学可以给挑挑毛病!大家以代码会友!
此外,POJ题目还包括一些数学题目,例如,1001 Exponentiation、1002 487-3279、1003 Hangover 等。这类题目需要程序员使用数学知识和算法来解决问题。 POJ题目是一个非常有价值的资源,对于程序员来说,通过解决...
2. 1002 487-3279:电话号码的转换,了解数字系统和位运算。 3. 1003 Hangover:简单的模拟醉酒状态,注意条件分支。 4. 2301 Beat the Spread!: 模拟体育比赛的赌注,理解概率和比较。 5. 2304 Combination Lock:...
* 1002 487-3279 * 1003 Hangover * 1701 Dissatisfying Lift * 2301 Beat the Spread! * 2304 Combination Lock * 2328 Guessing Game * 2403 Hay Points * 2406 Power Strings * 2339 Rock, Scissors, Paper * ...
* 1002 487-3279:本题目要求使用编程语言来模拟电话号码的格式化。 * 1003 Hangover:本题目要求使用编程语言来模拟酒吧的营业情况。 * 1701 Dissatisfying Lift:本题目要求使用编程语言来模拟电梯的运行情况。 * ...