北大acm1002题,请大神帮忙看看。代码自己测试没问题,但提交总是显示超时
由于代码字数超出限制,在此分享云盘链接,求广大网友帮忙,感激不尽,http://yunpan.cn/QCELNEIprh9dk(提取码:5d5c)...
由于代码字数超出限制,在此分享云盘链接,求广大网友帮忙,感激不尽,http://yunpan.cn/QCELNEIprh9dk(提取码:5d5c)
展开
1个回答
展开全部
import java.util.Scanner;
import java.util.TreeSet;
import java.util.*;
public class Main {
public static String yingshe(String s){ //映射函数
int j=0;
char a[]=new char[8];//存储翻译的号码
for(int i=0;i<s.length();i++){
if(j==3) {
a[j] = '-';
j++;
}
if((s.charAt(i)=='A'||s.charAt(i)=='B'||s.charAt(i)=='C')){
a[j]='2';j++;
}
else if((s.charAt(i)=='D'||s.charAt(i)=='E'||s.charAt(i)=='F')){
a[j]='3';j++;
}
else if((s.charAt(i)=='G'||s.charAt(i)=='H'||s.charAt(i)=='I')){
a[j]='4';j++;
}
else if((s.charAt(i)=='J'||s.charAt(i)=='K'||s.charAt(i)=='L')){
a[j]='5';j++;
}
else if((s.charAt(i)=='M'||s.charAt(i)=='N'||s.charAt(i)=='O')){
a[j]='6';j++;
}
else if((s.charAt(i)=='P'||s.charAt(i)=='R'||s.charAt(i)=='S')){
a[j]='7';j++;
}
else if((s.charAt(i)=='T'||s.charAt(i)=='U'||s.charAt(i)=='V')){
a[j]='8';j++;
}
else if((s.charAt(i)=='W'||s.charAt(i)=='X'||s.charAt(i)=='Y')){
a[j]='9';j++;
}
else if((s.charAt(i)=='0')){
a[j]='0';j++;
}
else if((s.charAt(i)=='1')){
a[j]='1';j++;
}
else if((s.charAt(i)=='2')){
a[j]='2';j++;
}
else if((s.charAt(i)=='3')){
a[j]='3';j++;
}
else if((s.charAt(i)=='4')){
a[j]='4';j++;
}
else if((s.charAt(i)=='5')){
a[j]='5';j++;
}
else if((s.charAt(i)=='6')){
a[j]='6';j++;
}
else if((s.charAt(i)=='7')){
a[j]='7';j++;
}
else if((s.charAt(i)=='8')){
a[j]='8';j++;
}
else if((s.charAt(i)=='9')){
a[j]='9';j++;
}
}
String s1 = new String(a);
//System.out.println(s1);
return s1;
}
public static void main(String []args){
Map<String, Integer> h=new TreeMap<String, Integer>();
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
for(int x=0;x<n;x++){ //输入要翻译的各个字符串
String temp = yingshe(sc.next());
Integer temp2;
if(h.containsKey(temp)) {
temp2 = h.get(temp);
temp2 = temp2 + 1;
} else {
temp2 = new Integer(1);
}
h.put(temp, temp2);
}
String pre = new String();
int counts = 0;
Iterator it = h.entrySet().iterator();
boolean flag = true;
while(it.hasNext())
{
Map.Entry entry = (Map.Entry) it.next();
String key = (String)entry.getKey();
Integer val = (Integer)entry.getValue();
if(val.compareTo(new Integer(1))>0) {
System.out.println(key + " " + val);
flag = false;
}
}
if(flag) {
System.out.println("No duplicates.");
}
}
}
更多追问追答
追问
你的的确是对的,大神,请问我的怎么错了啊,测试好像也没错啊,感激不尽
追答
你的没错,就是效率太低了。所以超时
北京千智道科技
2023-07-19 广告
2023-07-19 广告
一、千智道介绍千智道成立于2013年,专注于无人驾驶、人工餐能领域的科研、实训、科普展示综合解决方案,基于沉浸式、沙盘式、室外道路等多种实验场景之上构建智慧路网系统,实现智能网联车无人驾驶、V2X运行实验、配套网联信号机、RSU路测设备、智...
点击进入详情页
本回答由北京千智道科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询