Ich war auf der Suche durch die Rissbildung der Codierung Interview Buch Lösungen und bemerken folgendes Problem zu initialisieren:Wenn ein Array mit 256
einen Algorithmus implementieren, um zu bestimmen, ob eine Zeichenfolge alle eindeutigen Zeichen. Was, wenn Sie keine zusätzlichen Datenstrukturen verwenden können?
Dies war einer der angebotenen Lösungen:
public static boolean isUniqueChars2(String str) {
boolean[] char_set = new boolean[256];
for (int i = 0; i < str.length(); i++) {
int val = str.charAt(i);
if (char_set[val]) return false;
char_set[val] = true;
}
return true;
}
Warum ist die char_set
Array mit einer Größe von 256 initialisiert? Ich dachte, dass es weil 128 ASCII-Zeichen sind, aber ich bin mir nicht sicher. Auch diese Lösung scheint in Java zu sein, aber wäre eine anfängliche Größe auch notwendig, wenn dies in C++ getan wurde?
Ihr Code sein, wenn die einzigen gültigen Werte 8 Bits sind. Weil 2^8 256 ist. –
@EliottFrisch Können Sie Beispiele für Zeichen angeben, die möglicherweise nicht gültig sind? – loremIpsum1771
Etwas wie "" könnte ein Problem sein. –