Esta pergunta solicita uma funcionalidade de correspondência de dicionário T9, que é um problema muito interessante. Mas o T9 tem outra maneira de digitar, que é digitar caractere por caractere. Você NÃO precisaria de um dicionário para implementar este teclado.
Aqui está o mapa de teclas de um teclado T9 se você esqueceu:
+-------+-------+-------+
| 1 | 2 | 3 |
| .?! | ABC | DEF |
+-------+-------+-------+
| 4 | 5 | 6 |
| GHI | JKL | MNO |
+-------+-------+-------+
| 7 | 8 | 9 |
| PQRS | TUV | WXYZ |
+-------+-------+-------+
| * | 0 | # |
| ← | SPACE | → |
+-------+-------+-------+
Como o T9 funciona
Para digitar um caractere com T9, você precisa pressionar a tecla numérica que representa esse n
tempo. n
é a ordem desse caractere escrito nessa chave. Os números são o último caractere que você pode digitar para cada tecla. Por exemplo, para digitar B
eu pressione 2
duas vezes ou para digitar 5
eu pressione 5
quatro vezes. Para terminar de digitar esse caractere, pressione #
. *
é simplesmente backspace. Em nossa versão do teclado, não há letras maiúsculas.
Exemplos de entrada e saída:
8#99999#055#33#999#22#666#2#777#3# → T9 KEYBOARD
Explicação:
8
selecionaT
e#
move para o próximo caractere99999
selecione o último caractere da9
chave que é9
e#
move para o próximo caractere0
insere um espaço33
seleciona o segundo caractere da3
tecla que éK
e#
passa para o próximo caractere- E assim por diante...
Regras
Sua função ou programa deve aceitar uma sequência que representa as teclas pressionadas T9. Saída é o texto resultante dessas teclas, conforme descrito acima.
Este é um código básico de golfe, portanto o vencedor é o mais curto em bytes, e aplicam-se regras / brechas padrão.
T9 KEYBOARD
está completamente errado. Aquele lêT9 JEYBARD
#
se os botões consecutivos forem diferentes de qualquer maneira. o que foi dito: sem esse bônus, o que aconteceria se #
for omitido?