用JAVA写UVA的题目!帮我看看错在那儿?提交Wrong Answer
我写的UVA题目
编译通过,本机执行可以,不知道那儿有错误,为什么提交说Wrong Answer
题目编号:10062
給你一列文字,請你找出各字元出現的次數。
Input
每筆測試資料一列。每列最大長度為1000。
Output
對每一列輸入,請輸出各字元的ASCII值及其出現的次數。請根據出現的次數由小到大輸出。如果有2個以上的字元有相同的次數,則ASCII值較大的先輸出。
測試資料間請空一列,參考Sample Output
Sample Input
AAABBC
122333
Sample Output
67 1
66 2
65 3
49 1
50 2
51 3
==================================
import java.io.*;
import java.util.*;
class Main{
static String ReadLn(int maxLg){
byte lin[]=new byte [maxLg];
int lg=0,car=-1;
try{
while(lg<maxLg){
car=System.in.read();
if((car<0)||(car=='\n')){
break;
}
lin [lg++]+=car;
}
}
catch (IOException e){
return (null);
}
if((car<0)&&(lg==0)){
return (null);
}
return (new String(lin, 0, lg));
}
public static void main(String[] args){
int intByte[]=new int[255];
boolean blnPrinted[]=new boolean[255];
for(int i=0;i<intByte.length;i++){
intByte[i]=0;
blnPrinted[i]=true;
}
for(;;){
int intTotal=0;
String strIn=new String(ReadLn(2000));
if(strIn.length()==1){
break;
}
byte b[]=strIn.getBytes();
for(int i=0;i<b.length-1;i++){
intByte[(new Byte(b[i])).intValue()]++;
blnPrinted[(new Byte(b[i])).intValue()]=false;
}
int intMax=1;
for(int i=0;i<intByte.length;i++){
if(intByte[i]!=0){
intMax=Math.max(intMax,intByte[i]);
intTotal++;
}
}
while(intTotal>0){
int intThis=0;
int intSmall=intMax;
for(int i=0;i<intByte.length;i++){
if(intByte[i]<=intSmall && blnPrinted[i]==false){
intThis=i;
intSmall=intByte[i];
}
}
System.out.println(intThis+" "+intByte[intThis]);
blnPrinted[intThis]=true;
intTotal--;
}
System.out.println();
for(int i=0;i<intByte.length;i++){
intByte[i]=0;
blnPrinted[i]=true;
}
}
}
}