Implementieren eines Algorithmus zum Bestimmen, ob eine Zeichenfolge alle eindeutigen Zeichen enthält [closed]

Kontext: Ich bin ein CS n00b und arbeite mich durch "Cracking the Coding Interview". Das erste Problem besteht darin, "einen Algorithmus zu implementieren, um zu bestimmen, ob eine Zeichenfolge alle eindeutigen Zeichen enthält". Meine (wahrscheinlich naive) Implementierung sieht folgendermaßen aus:

def isUniqueChars2(string):
  uchars = []
  for c in string:
    if c in uchars:
      return False
    else:
      uchars.append(c)
  return True

Der Autor schlägt folgende Implementierung vor:

def isUniqueChars(string):
  checker = 0
  for c in string:
    val = ord(c) - ord('a')
    if (checker & (1 << val) > 0):
      return False
    else:
      checker |= (1 << val)
  return True

Was macht die Implementierung des Autors besser als meine (FWIW, die Lösung des Autors war in Java und ich habe sie in Python konvertiert - ist meine Lösung eine, die nicht in Java implementiert werden kann)? Oder allgemeiner, was ist für eine Lösung dieses Problems wünschenswert? Was ist falsch an meinem Ansatz? Ich gehe davon aus, dass es einige grundlegende CS-Konzepte gibt (mit denen ich nicht vertraut bin), die wichtig sind und bei der Auswahl des Lösungsansatzes für dieses Problem helfen.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage