java-检查两个字符串是否是字谜

我编写了一种方法来检查两个字符串是否为字谜.即使单词不是字谜,该方法也会返回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 [].

上一篇:js算法-242有效的字母异位词


下一篇:Leetcode.438 Find All Anagrams in a String(Java)