Menu
CoddyTech

Letter Combinations of a Phone Number

MedioBacktrackingpython iconjava iconcpp iconc iconjs icon+10

En el teclado de un teléfono, cada dígito del 2 al 9 tiene asignadas algunas letras: 2 es abc, 3 es def, 4 es ghi, 5 es jkl, 6 es mno, 7 es pqrs, 8 es tuv y 9 es wxyz.

Se te da una cadena digits. Elige una letra para cada dígito, manteniendo los dígitos en su orden, y obtendrás una cadena que se puede escribir con las teclas. Devuelve todas esas cadenas, ordenadas lexicográficamente (como en un diccionario). Para "23" son nueve cadenas, desde "ad" hasta "cf".

Función

letterCombinations(digits: string) → string-array
digitsstring
los dígitos pulsados, cada uno del 2 al 9
Devuelvestring-array
cada cadena que las teclas pueden escribir, en orden lexicográfico

Restricciones

  • 1 ≤ digits.length ≤ 4
  • Cada carácter de digits es un dígito del 2 al 9.
  • La respuesta contiene como máximo 44 = 256 cadenas.

Ejemplos

Entrada
digits = "23"
Salida
["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]
Explicación
2 ofrece a, b, c y 3 ofrece d, e, f. Cada primera letra se empareja con cada segunda letra, así que hay 3 × 3 = 9 cadenas, y enumerarlas haciendo que la primera letra cambie más lentamente las mantiene ordenadas.

lock icon+14 pruebas ocultas al enviar

challenge icon

Para ir más allá

Supón que solo quieres las combinaciones que son palabras reales de un diccionario. ¿Cómo evitarías construir primero todas las cadenas de 4^n?

Restablecer código
def letterCombinations(digits):
    # Escribe el código aquí
Casos de prueba

Caso 1

Caso 2

Caso 3

Entrada

digits = "23"

Esperado

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