Menu
CoddyTech

Letter Combinations of a Phone Number

電話のキーパッドでは、2から9までの各数字にいくつかの文字が割り当てられています。2はabc、3はdef、4はghi、5はjkl、6はmno、7はpqrs、8はtuv、9はwxyzです。

文字列digitsが与えられます。数字の順序を保ちながら、各数字に対して1つの文字を選ぶと、キーで入力できる文字列が1つ得られます。そのような文字列をすべて辞書順に並べて返してください。"23"の場合、"ad"から"cf"までの9つの文字列になります。

関数

letterCombinations(digits: string) → string-array
digitsstring
押された数字(それぞれ2から9)
戻り値string-array
キーで入力できるすべての文字列を辞書順に

制約

  • 1 ≤ digits.length ≤ 4
  • digits の各文字は、2 から 9 までの数字です。
  • 答えは最大で 44 = 256 個の文字列を含みます。

例

入力
digits = "23"
出力
["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]
説明
2はa、b、cを、3はd、e、fを提供します。それぞれの1文字目は2文字目のそれぞれと組み合わさるので、文字列は3 × 3 = 9個あり、1文字目の変化を最も遅くして列挙すると、並べ替えられた状態を保てます。

lock icon提出時に隠しテスト+14件

challenge icon

発展問題

辞書に載っている実在の単語の組み合わせだけが欲しいとします。まずすべての 4^n 文字列を作らずに済ませるには、どうすればよいでしょうか?

コードをリセット
def letterCombinations(digits):
    # ここにコードを書いてください
テストケース

ケース1

ケース2

ケース3

入力

digits = "23"

期待値

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