需要解释函数,它测试字符串中所有字符的唯一性

时间:2017-07-31 11:18:06

标签: java

“解决字符串是否具有所有唯一字符的算法实现算法”的解决方案如何工作?

public static boolean isUniqueChars(String str) {
    int checker = 0;
    for (int i = 0; i < str.length(); ++i) {
        int val = str.charAt(i) - ‘a’;
        if ((checker & (1 << val)) > 0) return false;
        checker |= (1 << val);
    }
    return true;
}

1 个答案:

答案 0 :(得分:3)

checker是一个26位的压缩数组,存储为int。 bit 0 =&#39; a&#39;,bit 1 =&#39; b&#39;,bit 2 =&#39; c&#39;等等。对输入字符串中的每个字符进行测试以查看是否存在已经在字符串中看到了,如果有,那么函数返回false,否则它设置的相应位和下一个字符被测试。如果到达字符串的末尾没有任何匹配,则函数返回true。

请注意,如果字符串包含除小写字母字符以外的任何内容,则此函数将失败。