Lấy cảm hứng từ Thử thách mã Google :
Bảng chữ cái Latinh chứa 26 ký tự và điện thoại chỉ có mười chữ số trên bàn phím. Chúng tôi muốn làm cho việc viết tin nhắn cho bạn bè của bạn dễ dàng hơn bằng cách sử dụng một chuỗi các phím bấm để chỉ ra các ký tự mong muốn. Các chữ cái được ánh xạ lên các chữ số như hình dưới đây. Ví dụ, để chèn ký tự B, chương trình sẽ nhấn 22. Để chèn hai ký tự theo thứ tự từ cùng một khóa, người dùng phải tạm dừng trước khi nhấn phím lần thứ hai. Ký tự không gian '' nên được in để biểu thị tạm dừng. Ví dụ: 2 2 chỉ AA trong khi 22 chỉ B.
Mỗi tin nhắn sẽ chỉ bao gồm các ký tự chữ thường az và ký tự khoảng trắng ''. Nhấn zero sẽ phát ra một khoảng trắng.

Thử thách của bạn là viết hàm nhỏ nhất lấy chuỗi đầu vào và trả về chuỗi các phím nhấn cần thiết để tạo đầu vào dưới dạng chuỗi hoặc xuất nó thành thiết bị xuất chuẩn. Hàm số lượng byte ít nhất sẽ thắng.
Ví dụ đầu vào / đầu ra
phone("hi")
44 444
phone("hello world")
4433555 555666096667775553
Làm rõ khác
- Tạm dừng chỉ phải được thêm khi cần thiết và phải là khoảng trắng ''.
- Mỗi tin nhắn sẽ chỉ bao gồm các ký tự chữ thường az và ký tự khoảng trắng ''. In
0để biểu thị không gian. - Không có thư viện bên ngoài.
- Chỉ chuỗi đầu vào có thể được chuyển đến chức năng của bạn.
- Để làm cho các ngôn ngữ khác cạnh tranh, khai báo hàm chính không được tính và cũng không nhập các thư viện chuẩn khác.
#includes,imports vàusings không được tính. Mọi thứ khác làm. Điều này không bao gồm#definecác chức năng s và trợ giúp. Xem quy tắc 2 trong câu hỏi này nếu bạn bối rối. - Nhiều không gian có thể được ký hiệu là
00hoặc0 0vì bạn không thực sự phải tạm dừng giữa một không gian
{}là một phần của chữ ký hàm không? Ví dụ, nếu mã của tôi là function f(){alert('hi');}, tôi nên đếm các ký tự của alert('hi');hay {alert('hi');}?
t9hoạt động khác nhau: bạn phải bấm từng phím một lần để có được một từ.