Inspirowany Google Code Challenge :
Alfabet łaciński zawiera 26 znaków, a telefony mają tylko dziesięć cyfr na klawiaturze. Chcemy ułatwić pisanie wiadomości do znajomego za pomocą sekwencji naciśnięć klawiszy w celu wskazania pożądanych znaków. Litery są odwzorowane na cyfry, jak pokazano poniżej. Na przykład, aby wstawić znak B, program nacisnąłby 22. Aby wstawić dwa znaki w sekwencji z tego samego klawisza, użytkownik musi przerwać przed ponownym naciśnięciem klawisza. Znak spacji „” powinien zostać wydrukowany, aby wskazać pauzę. Na przykład 2 2 oznacza AA, a 22 oznacza B.
Każda wiadomość będzie się składać tylko z małych liter az i spacji ''. Naciśnięcie zera powoduje emisję spacji.

Wyzwanie polega na napisaniu najmniejszej funkcji, która pobiera ciąg wejściowy i zwraca sekwencję naciśnięć klawiszy niezbędnych do wygenerowania wejścia jako ciągu lub wysłania go na standardowe wyjście. Funkcja, która jest najmniejszą liczbą bajtów, wygrywa.
Przykład wejścia / wyjścia
phone("hi")
44 444
phone("hello world")
4433555 555666096667775553
Inne wyjaśnienia
- Przerwy należy dodawać tylko w razie potrzeby i muszą być spacją ''.
- Każda wiadomość będzie się składać tylko z małych liter az i spacji ''. Drukuj,
0aby zaznaczyć spacje. - Brak bibliotek zewnętrznych.
- Do funkcji można przekazać tylko ciąg wejściowy.
- Aby inne języki były konkurencyjne, deklaracja funkcji podstawowej nie ma znaczenia, podobnie jak import innych standardowych bibliotek.
#includes,imports iusings nie liczą się. Wszystko inne robi. Obejmuje to#definefunkcje pomocnicze i pomocnicze. Jeśli jesteś zdezorientowany, zobacz zasadę 2 w tym pytaniu. - Wiele spacji można oznaczyć jako
00lub,0 0ponieważ tak naprawdę nie trzeba przerywać między spacjami
{}są częścią podpisu funkcji? Na przykład, jeśli mój kod to function f(){alert('hi');}, czy powinienem liczyć znaki alert('hi');lub {alert('hi');}?
t9działa inaczej: musisz kliknąć każdy klawisz raz, aby uzyskać słowo.