Buchstabenkombinationen einer Telefonnummer
Detaillierte Anleitung und Python-Implementierung für das Problem „Buchstabenkombinationen einer Telefonnummer“.
1. Lernen
Das Problem „Buchstabenkombinationen einer Telefonnummer“ ist eine zentrale Herausforderung im Abschnitt „Backtracking“.
Diese Implementierung konzentriert sich auf einfache Logik in Python.
Wir legen bei unseren bereitgestellten Lösungen Wert auf technische Genauigkeit und Lesbarkeit des Codes.
2. Real-World Applications
3. Visual Intuition
Visualisierung des Logikflusses für Buchstabenkombinationen einer Telefonnummer.
4. Prerequisites
5. Step-by-Step Thinking
1. Understand the problem
Lesen Sie die Problemstellung für Buchstabenkombinationen einer Telefonnummer sorgfältig durch.
2. Formulate brute force
Entwerfen Sie eine einfache iterative Lösung.
3. Identify inefficiency
Suchen Sie nach redundanten Berechnungen.
4. Optimize search path
Verwenden Sie Hashing oder Sortieren, um den Prozess zu beschleunigen.
5. Final Implementation
Bereinigen Sie den Code für Produktionsstandards.
Problemstellung
Geben Sie bei einer gegebenen Zeichenfolge mit Ziffern von 2 bis einschließlich 9 alle möglichen Buchstabenkombinationen zurück, die die Zahl darstellen könnte. Geben Sie die Antwort in beliebiger Reihenfolge zurück.
Nachfolgend finden Sie eine Zuordnung von Ziffern zu Buchstaben (genau wie bei den Telefontasten). Beachten Sie, dass 1 keinem Buchstaben zugeordnet werden kann.
2: abc, 3: def, 4: ghi, 5: jkl, 6: mno, 7: pqrs, 8: tuv, 9: wxyz
Implementieren Sie eine Funktion letterCombinations(digits: str) -> list.
- •0 <= digits.length <= 4
- •digits[i] is a digit in the range ['2', '9']
Beispiele
"23"
["ad","ae","af","bd","be","bf","cd","ce","cf"]
Digit 2 maps to 'abc' and digit 3 maps to 'def'. All combinations of one letter from each digit are generated.
""
[]
Empty input produces no combinations.
"2"
["a","b","c"]
Digit 2 maps to 'abc'.
Need a Hint?
Edge Cases to Watch
- Leere Eingabestrukturen
- Einzelelementeingaben
- Große numerische Grenzen
Bereit zur Lösung?
Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.
Einblicke und Variationen in Interviews
Aufschlüsselung der Komplexitätsanalyse
Warum Zeit: Directly evaluates all possibilities.
Warum Weltraum: Uses standard local memory.
Warum Zeit: Optimized paths reduce total operations.
Warum Weltraum: May trade memory for speed.
Optimierter Lösungs-Python-Code
Optimierter Lösungs-Python-Code
def letter_combinations_opt(digits: str) -> list[str]:
if not digits: return []
res = []
digitToChar = {"2":"abc","3":"def","4":"ghi","5":"jkl","6":"mno","7":"pqrs","8":"tuv","9":"wxyz"}
def backtrack(i, curStr):
if len(curStr) == len(digits):
res.append(curStr)
return
for c in digitToChar[digits[i]]:
backtrack(i + 1, curStr + c)
backtrack(0, "")
return resBrute-Force-Code (Spoiler Guarded)
Brute-Force-Code (Spoiler Guarded)
def letter_combinations_brute(digits: str) -> list[str]:
if not digits: return []
mapping = {"2":"abc","3":"def","4":"ghi","5":"jkl","6":"mno","7":"pqrs","8":"tuv","9":"wxyz"}
res = [""]
for d in digits:
tmp = []
for r in res:
for c in mapping[d]:
tmp.append(r + c)
res = tmp
return resAlgorithm Pattern Checklist
When dealing with Backtracking data patterns.
- Are constraints clear?
- Is there a linear or logarithmic optimization possible?
Key Revision Notes
Es gelten die Standardeigenschaften des Backtracking-Problems.
Verwandte Fragen
PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!
Empfohlene Python-Ressourcen
Erweitern Sie Ihr Wissen mit zugehörigen interaktiven Tutorials, Spickzetteln und Codevergleichen.
Python-Variablen und Datentypen erklärt
Verstehen Sie Python-Variablen und Kerndatentypen (Strings, Ganzzahlen, Gleitkommazahlen, Boolesche Werte). Eine vollständige Einsteigeranleitung zur Speicherzuweisung in Python.
So sortieren Sie eine Liste in Python
Erfahren Sie, wie Sie eine Liste in Python mit der Methode sort() und der Funktion sorted() sortieren. Entdecken Sie Beispiele für benutzerdefinierte Schlüsselsortierung und umgekehrte Reihenfolge.
Spickzettel für Python-Wörterbuchmethoden
Lernen Sie Python-Wörterbuchmethoden. Vollständiges Referenzhandbuch für das Einfügen, Abrufen, Aktualisieren und Überprüfen von Schlüssel-Wert-Paaren.
Python vs. JavaScript: Welche Programmiersprache ist die beste?
Ein umfassender Vergleich zwischen Python und JavaScript. Entdecken Sie Syntaxunterschiede, Leistung, Anwendungsfälle (Backend vs. Frontend) und Codierungsbeispiele.