编程语言
首页 > 编程语言> > java-检查两个字符串是否是字谜

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 [].

标签:anagram,java
来源: https://codeday.me/bug/20191027/1945085.html