Inspirado por el Google Code Challenge :
El alfabeto latino contiene 26 caracteres y los teléfonos solo tienen diez dígitos en el teclado. Nos gustaría que sea más fácil escribir un mensaje a su amigo usando una secuencia de pulsaciones de teclas para indicar los caracteres deseados. Las letras se asignan a los dígitos como se muestra a continuación. Para insertar el carácter B, por ejemplo, el programa presionaría 22. Para insertar dos caracteres en secuencia desde la misma tecla, el usuario debe hacer una pausa antes de presionar la tecla por segunda vez. El carácter de espacio '' debe imprimirse para indicar una pausa. Por ejemplo, 2 2 indica AA mientras que 22 indica B.
Cada mensaje constará solo de caracteres en minúscula az y de espacio ''. Al presionar cero se emite un espacio.

Su desafío es escribir la función más pequeña que toma la cadena de entrada y devuelve la secuencia de pulsaciones de teclas necesarias para producir la entrada como cadena o salida a stdout. La función que es la menor cantidad de bytes gana.
Ejemplo de entrada / salida
phone("hi")
44 444
phone("hello world")
4433555 555666096667775553
Otras aclaraciones
- Pausas debe solamente ser añadido cuando sea necesario y debe ser un espacio ''.
- Cada mensaje constará solo de caracteres en minúscula az y de espacio ''. Imprimir
0para significar espacios. - No hay bibliotecas externas.
- Solo se puede pasar la cadena de entrada a su función.
- Para que otros idiomas sean competitivos, la declaración de la función principal no cuenta y tampoco importa otras bibliotecas estándar.
#includes,imports yusings no cuentan. Todo lo demás lo hace. Esto incluye#definesy funciones auxiliares. Vea la regla 2 en esta pregunta si está confundido. - Múltiples espacios se pueden denotar como
00o0 0ya que realmente no tiene que hacer una pausa entre un espacio
{}parte de la firma de la función? Por ejemplo, si mi código es function f(){alert('hi');}, ¿debo contar los caracteres de alert('hi');o {alert('hi');}?
t9funciona de manera diferente: tienes que hacer clic en cada tecla una vez para obtener una palabra.