java新手-了解实际使用中的位操作 //确定字符串是否包含唯一字符 公共静态布尔值isUniqueChars(字符串str){ int-checker=0; 对于(int i=0;i

java新手-了解实际使用中的位操作 //确定字符串是否包含唯一字符 公共静态布尔值isUniqueChars(字符串str){ int-checker=0; 对于(int i=0;i,java,android,Java,Android,,则该算法可以工作,因为checker变成了一个位图,告诉您遇到了哪些字符 我想我会用一个例子来解释。假设我们的字符串是'bedb'。 我们从checker=0开始。 然后“b”来了。val==1因为'b'-'a'==1 (11)每个符号在单词中的位置为1,例如:a=1,b=10,c=100,d=1000 2) 棋盘格保存前面显示的每个符号的位位置(棋盘格|=(1 //determines if string contains unique characters public static b

,则该算法可以工作,因为checker变成了一个位图,告诉您遇到了哪些字符

我想我会用一个例子来解释。假设我们的字符串是'bedb'。 我们从checker=0开始。 然后“b”来了。
val==1
因为
'b'-'a'==1

(11)每个符号在单词中的位置为1,例如:a=1,b=10,c=100,d=1000 2) 棋盘格保存前面显示的每个符号的位位置(棋盘格|=(1
//determines if string contains unique characters

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)   <--- right here
            return false;
        checker |= (1 << val);
    }
    return true;
}