Menu
CoddyTech

Letter Combinations of a Phone Number

ŚrednieNawrotypython iconjava iconcpp iconc iconjs icon+10

Na klawiaturze telefonu każda cyfra od 2 do 9 odpowiada kilku literom: 2 to abc, 3 to def, 4 to ghi, 5 to jkl, 6 to mno, 7 to pqrs, 8 to tuv, a 9 to wxyz.

Otrzymujesz ciąg znaków digits. Wybierz po jednej literze dla każdej cyfry, zachowując kolejność cyfr, a otrzymasz ciąg znaków, który można wpisać za pomocą klawiszy. Zwróć wszystkie takie ciągi, posortowane w porządku leksykograficznym (jak w słowniku).

Funkcja

letterCombinations(digits: string) → string-array
digitsstring
naciśnięte cyfry, każda od 2 do 9
Zwracastring-array
każdy ciąg znaków, który można wpisać za pomocą klawiszy, w kolejności leksykograficznej

Ograniczenia

  • 1 ≤ digits.length ≤ 4
  • Każdy znak w digits jest cyfrą od 2 do 9.
  • Odpowiedź zawiera co najwyżej 44 = 256 ciągów.

Przykłady

Wejście
digits = "23"
Wyjście
["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]
Wyjaśnienie
2 oferuje a, b, c, a 3 oferuje d, e, f. Każda pierwsza litera łączy się z każdą drugą literą: 3 × 3 = 9 ciągów, uporządkowanych tak, że pierwsza litera zmienia się najwolniej.
challenge icon

Pytanie dodatkowe

Załóżmy, że chcesz tylko tych kombinacji, które są prawdziwymi słowami ze słownika. Jak uniknąć utworzenia najpierw wszystkich ciągów 4^n?

Zresetuj kod
def letterCombinations(digits):
    # Wpisz tutaj kod

Test #1

Test #2

Test #3

Argument

digits = "23"

Oczekiwany wynik

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