Questa domanda richiede una funzionalità di corrispondenza del dizionario T9 che è un problema molto interessante. Ma T9 ha un altro modo di scrivere e cioè digitare carattere per carattere. NON è necessario un dizionario per implementare questa tastiera.
Ecco la mappa dei tasti di una tastiera T9 se hai dimenticato:
+-------+-------+-------+
| 1 | 2 | 3 |
| .?! | ABC | DEF |
+-------+-------+-------+
| 4 | 5 | 6 |
| GHI | JKL | MNO |
+-------+-------+-------+
| 7 | 8 | 9 |
| PQRS | TUV | WXYZ |
+-------+-------+-------+
| * | 0 | # |
| ← | SPACE | → |
+-------+-------+-------+
Come funziona T9
Per digitare un carattere con T9, è necessario premere il tasto numerico che rappresenta i n
tempi di quel carattere . n
è l'ordine di quel personaggio scritto su quella chiave. I numeri sono l'ultimo carattere che puoi digitare per ogni tasto. Ad esempio, per digitare B
premo 2
due volte o per digitare 5
premo 5
quattro volte. Per finire di digitare questo personaggio premo #
. *
è semplicemente backspace. Nella nostra versione di tastiera non c'è maiuscola.
Esempi di input e output:
8#99999#055#33#999#22#666#2#777#3# → T9 KEYBOARD
Spiegazione:
8
selezionaT
e#
passa al personaggio successivo99999
seleziona l'ultimo carattere del9
tasto che è9
e#
passa al carattere successivo0
inserisce uno spazio33
seleziona il secondo carattere del3
tasto che èK
e#
passa al carattere successivo- E così via...
Regole
La tua funzione o programma dovrebbe accettare una stringa che rappresenta i tasti T9. L'output è il testo risultante da quei tasti premuti, come indicato sopra.
Questo è il golf di base del codice, quindi il vincitore è il più breve in byte e si applicano le regole / scappatoie standard.
T9 KEYBOARD
è completamente sbagliato. Quella diceT9 JEYBARD
#
se i pulsanti consecutivi sono comunque diversi. detto questo: senza quel bonus cosa dovrebbe succedere se #
omesso?