文字列パラメーターを受け入れ、文字列がすべて異なる文字で構成されているかどうかに応じてまたはを返す Java 関数をどのように実装するのが最善でしょうか。true
false
これはインタビューの質問です。実装では、ビット マスキングを使用して文字の出現を格納する必要があり、その他の補助データ構造は使用しないでください。
注:ビットマスキングを使用する必要があるため、この質問は次の質問とは異なります。
リクエストに応じて、これまでのところ私の努力はここにあります。可能であれば、今すぐ質問を再開してください。
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;
}