問題は、特定の文字列に重複する文字がないかどうかを判断することです。制約は、文字列に文字az(小文字のみ)のみが含まれることです。
明らかな解決策は、配列(またはハッシュテーブル)を使用して、遭遇した文字を追跡することです。ただし、問題は、データ構造の使用が許可されていないことです。
以下は、問題の1つの解決策です。しかし、私はそれがどのように機能しているかを完全には理解していません。遭遇した文字を追跡するために整数のビットを使用していることがわかります。
public 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;
}