【发布时间】:2016-04-07 02:00:09
【问题描述】:
我写了一个方法来检查两个字符串是否是字谜。即使单词不是字谜,该方法也会返回 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;
}
【问题讨论】:
-
我不确定这个算法究竟是如何工作的,但只是我个人的看法:使用
toCharArray(),按字母顺序排序,然后比较数组。 -
我知道的其他方法很少,我只想知道为什么这个小代码不起作用。该算法使用字符的 ASCII 值来跟踪字符。