我将如何最好地实现一个接受 String 参数并返回true
或false
取决于 String 是否由所有不同字符组成的 Java 函数。
这是一道面试题。实现应该使用位掩码来存储字符的出现,而不是其他辅助数据结构。
注意:使用位掩码的要求使这个问题不同于:
根据要求,这是我迄今为止的努力。如果可能,请现在重新打开问题:
public static boolean hasAllUniqueCharactersUsingBitMasking(String string) {
final int length = string.length();
final int nBitsToStoreAllUnicodeCharacters =
(int) Math.ceil(Math.log(Character.MAX_CODE_POINT) / Math.log(2d));
BitSet bitSet = new BitSet(nBitsToStoreAllUnicodeCharacters);
for (int i = 0; i < length; i++) {
char c = string.charAt(i);
if (bitSet.get(c)) {
return false;
}
bitSet.set(c);
}
return true;
}