Menu
CoddyTech

Letter Combinations of a Phone Number

MédioBacktrackingpython iconjava iconcpp iconc iconjs icon+10

Em um teclado de telefone, cada dígito de 2 a 9 corresponde a algumas letras: 2 é abc, 3 é def, 4 é ghi, 5 é jkl, 6 é mno, 7 é pqrs, 8 é tuv e 9 é wxyz.

Você recebe uma string digits. Escolha uma letra para cada dígito, mantendo os dígitos na ordem em que aparecem, e você obtém uma string que as teclas podem digitar. Retorne todas essas strings, ordenadas em ordem lexicográfica (de dicionário). Para "23", são nove strings, de "ad" a "cf".

Função

letterCombinations(digits: string) → string-array
digitsstring
os dígitos pressionados, cada um de 2 a 9
Retornastring-array
todas as strings que as teclas podem digitar, em ordem lexicográfica

Restrições

  • 1 ≤ digits.length ≤ 4
  • Cada caractere de digits é um dígito de 2 a 9.
  • A resposta contém no máximo 44 = 256 strings.

Exemplos

Entrada
digits = "23"
Saída
["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]
Explicação
O 2 oferece a, b, c e o 3 oferece d, e, f. Cada primeira letra forma um par com cada segunda letra, então há 3 × 3 = 9 strings, e listá-las com a primeira letra mudando mais lentamente mantém a ordem.

lock icon+14 testes ocultos ao enviar

challenge icon

Para ir além

Suponha que você queira apenas as combinações que sejam palavras reais de um dicionário. Como você evitaria gerar todas as 4^n strings primeiro?

Redefinir código
def letterCombinations(digits):
    # Escreva o código aqui
Casos de teste

Caso 1

Caso 2

Caso 3

Entrada

digits = "23"

Esperado

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