本帖最后由 fsneak 于 2010-04-11 23:36:00 编辑

解决方案 »

  1.   

    呃……所以说这是ACM
    就是把代码交上去由服务器中的虚拟机运行来判断正误
    所以你无法知道有什么错误,错在哪里……
    当然,自己测试的数据是没问题的
      

  2.   

    俺也是runtinme error,是poj评测机的事,我鄙视poj让他鄙视java,俺不会用map俺有的是堆排
      

  3.   

    public class名字只能是Main..而且这个算法超时的吧?
      

  4.   


    import java.util.*;
    import java.io.*;
    import java.util.regex.*;
    public class Main 
    {
    public static void main(String[] args) throws Exception
    {
    BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
    String line="";
    int total=Integer.parseInt(br.readLine());
    StringBuilder builder=null;
    HashMap<String,Integer> map=new HashMap();
    for(int t=0;t<total;t++){
    line=br.readLine();
    builder=new StringBuilder();
    Pattern p=Pattern.compile("\\w+");
    Matcher m=p.matcher(line);
    while(m.find())
    builder.append(m.group());
    for(int i=0;i<builder.length();i++){
    if(builder.charAt(i)>='A'&&builder.charAt(i)<='Z'){
    int num=builder.charAt(i)-'A';
    if(num>16)
    builder.replace(i,i+1,((num-1)/3+2)+"");
    else
    builder.replace(i,i+1,(num/3+2)+"");
    }
    }
    builder.insert(3,'-');
    String s=builder.toString();
    if(map.containsKey(s)){
    map.put(s,map.get(s)+1);
    }
    else 
    map.put(s,1);
    } Iterator<String> iter=map.keySet().iterator();
    ArrayList<String> list=new ArrayList();
    while(iter.hasNext()){
    list.add(iter.next());
    }
    Collections.sort(list);
    boolean flag=false;
    String key=null;
    for(int i=0;i<list.size();i++){
    key=list.get(i);
    if(map.get(key)>1){
    flag=true;
    System.out.println(key+" "+map.get(key));
    }
    }
    if(!flag)
    System.out.println("No duplicates.");
    }
    }这个是我的代码,lz参考下
      

  5.   

    晕...这么简单的题!你的类名不是Main。OJ上提交Java的主类名必须为Main
      

  6.   

    给你个C++代码#include <iostream>
    #include <stdlib.h>
    #include <string>using namespace std;int compare( const void *a,const void *b)
    {
    return strcmp( (char *)a,(char *)b );
    }char str[100000][8];
    char into[27]="22233344455566677778889999";int main()
    {
    #ifndef ONLINE_JUDGE
    freopen("in.txt","r",stdin);
    #endif
    int n,i,j,k;
    char a[50];
    scanf("%d\n",&n);
    for (i=0;i<n;i++)
    {
    scanf("%s\n",&a);
    for ( k=j=0;j<strlen(a);j++,k++ )
    {
    if ( a[j]>='0' && a[j]<='9' )
    str[i][k]=a[j];
    else if ( a[j]>='A' && a[j]<='Z' )
    str[i][k]=into[ a[j]-'A' ];
    else 
    k--;
    }
    }
    qsort(str,n,8,compare);
    int t=0;
    for (i=0;i<n-1;)
    {
    int count=1;
    for (j=i+1;j<n;j++)
    {
    if ( !strcmp(str[i],str[j]) )
    count++;
    else
    break;
    }
    if ( count>=2 )
    {
    printf("%c%c%c-%s %d\n",str[i][0],str[i][1],str[i][2],str[i]+3,count);
    t++;
    }
    i=j;
    }
    if( !t )
    printf("No duplicates.\n");
    return 0;
    }