Dada una Cadena y una Matriz como entrada, su tarea es generar el texto que la Cadena de entrada imprimirá cuando se escriba en un Teclado Móvil típico. En un teclado móvil, una letra se escribe presionando un botón n veces, donde n es la posición de la letra en la etiqueta del botón. Entonces, 22
debería salir b
.
Reglas
La matriz de ayuda contendrá el mapa de caracteres (
[" ",".,!","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"]
). Esto se dará para ahorrarle algunos bytes.El
#
símbolo alternará entre mayúsculas y minúsculas. El caso inicial será más bajo. Entonces2#3
debería saliraD
.El
0
agregará un espacio. Entonces,202
debería salira a
.Habrá un espacio (
) en la Cadena de entrada para comenzar una nueva letra que esté en el mismo botón numérico. Para que Ejemplo escriba
aa
, la cadena de entrada será2 2
.Se garantiza que la cadena de entrada siempre será un código de teclado válido.
Entrada
Puede recibir información de cualquier manera que su idioma admita.
Salida
Puede generar el resultado de la forma que desee. La función return
también está permitida.
Casos de prueba
#4440555#666888330#999#66688111 -> "I Love You!"
#6#33777 7779990#222#4477744477778627777111 -> "Merry Christmas!"
#44#27 79990#66#3390#999#332777111 -> "Happy New Year!"
Este es el código de golf , por lo que gana el código más corto en bytes.
year
en el último caso de prueba está mal.##
necesario manejar el doble espacio?Respuestas:
Pyth - 31 bytes
La nueva clave me costó demasiado.
Test Suite .
fuente
JavaScript,
10599 bytesfuente
l
) y luego utilizandoc?l:l.toUpperCase()
.Perl 6 ,
11997 bytessolución basada en mapas 119 bytes
Intentalo
solución basada en sustitución 97 bytes
Intentalo
Expandido:
fuente
JavaScript ES6 - 124 bytes
Golfizado:
Sin golf:
fuente
JavaScript, 301 bytes
Sé que esto es muy largo, pero es lo mejor que puedo.
fuente
V , 60 bytes
(Hay una no imprimible
½<Ctrl+r>a
)Pruébalo en línea!
Explique
fuente