Inspiré par le Google Code Challenge :
L'alphabet latin contient 26 caractères et les téléphones n'ont que dix chiffres sur le clavier. Nous aimerions faciliter l'écriture d'un message à votre ami en utilisant une séquence de touches pour indiquer les caractères souhaités. Les lettres sont mappées sur les chiffres comme indiqué ci-dessous. Pour insérer le caractère B par exemple, le programme doit appuyer sur 22. Afin d'insérer deux caractères en séquence à partir de la même touche, l'utilisateur doit faire une pause avant d'appuyer une deuxième fois sur la touche. Le caractère espace '' doit être imprimé pour indiquer une pause. Par exemple, 2 2 indique AA tandis que 22 indique B.
Chaque message sera composé uniquement de caractères minuscules az et d'espaces ''. Appuyer sur zéro émet un espace.

Votre défi consiste à écrire la plus petite fonction qui prend la chaîne d'entrée et renvoie la séquence de touches nécessaire pour produire l'entrée sous forme de chaîne ou la sortir vers stdout. La fonction qui a le moins d'octets gagne.
Exemple d'entrée / sortie
phone("hi")
44 444
phone("hello world")
4433555 555666096667775553
Autres clarifications
- Les pauses ne doivent être ajoutées que lorsque cela est nécessaire et doivent être un espace ''.
- Chaque message sera composé uniquement de caractères minuscules az et d'espaces ''. Imprimez
0pour signifier les espaces. - Pas de bibliothèques externes.
- Seule la chaîne d'entrée peut être transmise à votre fonction.
- Pour rendre d'autres langages compétitifs, la déclaration de fonction principale ne compte pas, pas plus que l'importation d'autres bibliothèques standard.
#includes,imports etusings ne comptent pas. Tout le reste fait. Cela inclut les fonctions#defines et d'assistance. Voir la règle 2 dans cette question si vous êtes confus. - Plusieurs espaces peuvent être notés comme
00ou0 0puisque vous n'avez pas vraiment besoin de faire une pause entre un espace
{}partie de la signature de la fonction? Par exemple, si mon code est function f(){alert('hi');}, dois-je compter les caractères de alert('hi');ou {alert('hi');}?
t9fonctionne différemment: vous devez cliquer une fois sur chaque touche pour obtenir un mot.