这是一个检查字符串是否由唯一字符组成的函数,但我无法理解它是如何工作的。谢谢你的帮助!
public static boolean isUniqueChars(String str) {
if (str.length() > 256) {
return false;
}
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;
}
答案 0 :(得分:1)
此函数的目的是获取其中只包含小写字母(az)的字符串,并检查所有符号是否都是唯一的,即它将为abc
返回true并为abca
返回false
这是以下一种方式完成的:
a
变为0
,b
变为1
,z
将成为25
checker
用作mask来存储位,每位意味着我们遇到了一些字母符号1 << val
所以,要完全理解这个功能,我建议你阅读有关位掩码和位算术
的内容