我编写了一种方法来检查两个字符串是否为字谜.即使单词不是字谜,该方法也会返回true.我没有看到代码中的任何错误,没有任何想法可以改进吗?方法如下
public static boolean checkAnagram( String one, String two){
if ( one.length() != two.length() )
return false;
char[] letters = new char[128];
for ( char c: one.toCharArray()){
letters[c]++;
}
for( int j =0; j < two.length(); j++){
int c = (int) two.charAt(j);
if( --letters[c] < 0) return false;
}
return true;
}
解决方法:
letter是一个char数组,因此letter [i]永远不能为负(char的范围是0到2 ^ 16-1).如果尝试将其减小到0以下,它将下溢到Character.MAX_VALUE.将其更改为int [].