Dada uma String e uma Matriz como entrada, sua tarefa é gerar o texto que a String de entrada imprimirá quando digitada em um teclado móvel típico. Em um teclado móvel, uma letra é digitada pressionando um botão n vezes, onde n é a posição em que a letra se encontra no rótulo do botão. Então, 22
deve sair b
.
Regras
A matriz auxiliar conterá o mapa de caracteres (
[" ",".,!","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"]
). Isso será fornecido para economizar alguns bytes.O
#
símbolo irá alternar entre maiúsculas e minúsculas. O caso inicial será menor. Então2#3
deve sairaD
.O
0
irá adicionar um espaço. Então,202
deve saira a
.Haverá um espaço (
) na String de entrada para iniciar uma nova letra que esteja no mesmo botão numérico. Para o exemplo digitar
aa
, a entrada String será2 2
.É garantido que a String de entrada sempre será um Código do KeyPad válido.
Entrada
Você pode receber informações da maneira que seu idioma suportar.
Resultado
Você pode exibir o resultado da maneira que desejar. A função return
também é permitida.
Casos de teste
#4440555#666888330#999#66688111 -> "I Love You!"
#6#33777 7779990#222#4477744477778627777111 -> "Merry Christmas!"
#44#27 79990#66#3390#999#332777111 -> "Happy New Year!"
Isso é código-golfe , então o código mais curto em bytes vence!
year
último caso de teste está errada.##
necessário lidar com espaço duplo?Respostas:
Pitão - 31 bytes
A nova coisa chave me custou muito.
Conjunto de Teste .
fonte
JavaScript,
10599 bytesfonte
l
) e, em seguida, usandoc?l:l.toUpperCase()
.Perl 6 ,
11997 bytessolução baseada em mapa 119 bytes
Tente
solução baseada em substituição 97 bytes
Tente
Expandido:
fonte
JavaScript ES6 - 124 bytes
Golfe:
Ungolfed:
fonte
JavaScript, 301 bytes
Eu sei que isso é muito longo, mas é o melhor que posso.
fonte
V , 60 bytes
(Há um imprimível
½<Ctrl+r>a
)Experimente online!
Explicar
fonte