Menu
CoddyTech

Letter Combinations of a Phone Number

MittelBacktrackingpython iconjava iconcpp iconc iconjs icon+10

Auf einer Telefontastatur sind jeder Ziffer von 2 bis 9 einige Buchstaben zugeordnet: 2 steht für abc, 3 für def, 4 für ghi, 5 für jkl, 6 für mno, 7 für pqrs, 8 für tuv und 9 für wxyz.

Du erhältst eine Zeichenfolge digits. Wähle für jede Ziffer einen Buchstaben aus und behalte dabei die Reihenfolge der Ziffern bei. So erhältst du eine Zeichenfolge, die sich mit den Tasten eingeben lässt. Gib alle solchen Zeichenfolgen in lexikografischer (Wörterbuch-)Reihenfolge zurück. Für "23" sind das neun Zeichenfolgen, von "ad" bis "cf".

Funktion

letterCombinations(digits: string) → string-array
digitsstring
die gedrückten Ziffern, jeweils von 2 bis 9
Gibt zurückstring-array
jede Zeichenfolge, die die Tasten eingeben können, in lexikografischer Reihenfolge

Einschränkungen

  • 1 ≤ digits.length ≤ 4
  • Jedes Zeichen von digits ist eine Ziffer von 2 bis 9.
  • Die Antwort umfasst höchstens 44 = 256 Zeichenfolgen.

Beispiele

Eingabe
digits = "23"
Ausgabe
["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]
Erklärung
2 bietet a, b, c und 3 bietet d, e, f. Jeder erste Buchstabe wird mit jedem zweiten Buchstaben kombiniert, also gibt es 3 × 3 = 9 Zeichenfolgen, und wenn man sie so auflistet, dass sich der erste Buchstabe am langsamsten ändert, bleiben sie sortiert.

lock icon+14 versteckte Tests beim Einreichen

challenge icon

Weiterführende Frage

Angenommen, du möchtest nur die Kombinationen, die echte Wörter aus einem Wörterbuch sind. Wie könntest du vermeiden, zuerst alle 4^n Zeichenfolgen zu erstellen?

Code zurücksetzen
def letterCombinations(digits):
    # Schreibe hier den Code
Testfälle

Fall 1

Fall 2

Fall 3

Eingabe

digits = "23"

Erwartet

["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]