Menu
CoddyTech

Letter Combinations of a Phone Number

SedangBacktrackingpython iconjava iconcpp iconc iconjs icon+10

Pada keypad ponsel, setiap digit dari 2 hingga 9 memiliki beberapa huruf: 2 adalah abc, 3 adalah def, 4 adalah ghi, 5 adalah jkl, 6 adalah mno, 7 adalah pqrs, 8 adalah tuv, dan 9 adalah wxyz.

Kamu mendapatkan string digits. Pilih satu huruf untuk setiap digit, dengan mempertahankan urutan digit, maka kamu mendapatkan satu string yang dapat diketik menggunakan tombol tersebut. Kembalikan semua string tersebut, diurutkan berdasarkan urutan leksikografis (urutan kamus).

Fungsi

letterCombinations(digits: string) → string-array
digitsstring
digit yang ditekan, masing-masing dari 2 hingga 9
Mengembalikanstring-array
setiap string yang dapat diketik oleh tombol, dalam urutan leksikografis

Batasan

  • 1 ≤ digits.length ≤ 4
  • Setiap karakter dalam digits adalah digit dari 2 hingga 9.
  • Jawabannya memuat paling banyak 44 = 256 string.

Contoh

Input
digits = "23"
Output
["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]
Penjelasan
2 menawarkan a, b, c dan 3 menawarkan d, e, f. Setiap huruf pertama dipasangkan dengan setiap huruf kedua: 3 × 3 = 9 string, diurutkan dengan perubahan huruf pertama paling lambat.
challenge icon

Pertanyaan lanjutan

Misalkan kamu hanya menginginkan kombinasi yang merupakan kata sungguhan dalam kamus. Bagaimana kamu menghindari membuat semua string 4^n terlebih dahulu?

Reset kode
def letterCombinations(digits):
    # Tulis kodemu di sini

Tes #1

Tes #2

Tes #3

Argumen

digits = "23"

Output yang diharapkan

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