Google 코드 챌린지 에서 영감을 얻음 :
라틴 알파벳은 26 자이며 전화기에는 10 자리 숫자 만 있습니다. 원하는 문자를 나타 내기 위해 일련의 키 누름을 사용하여 친구에게 메시지를보다 쉽게 작성할 수 있도록하고 싶습니다. 문자는 아래와 같이 숫자에 매핑됩니다. 예를 들어 문자 B를 삽입하려면 프로그램에서 22를 누릅니다. 동일한 키에서 두 문자를 순서대로 삽입하려면 키를 두 번 누르기 전에 일시 중지해야합니다. 공백 문자 ''를 인쇄하여 일시 중지를 나타냅니다. 예를 들어 2 2는 AA를 나타내고 22는 B를 나타냅니다.
각 메시지는 소문자 az와 공백 문자 ''로만 구성됩니다. 0을 누르면 공백이 나타납니다.
입력 문자열을 취하는 가장 작은 함수를 작성하고 입력을 문자열로 생성하거나 stdout에 출력하는 데 필요한 일련의 키 누르기를 리턴해야합니다. 바이트 수가 가장 적은 함수가 이깁니다.
입력 / 출력 예
phone("hi")
44 444
phone("hello world")
4433555 555666096667775553
다른 설명
- 일시 정지 는 필요할 때만 추가해야하며 공백 ''이어야합니다.
- 각 메시지는 소문자 az와 공백 문자 '' 로만 구성됩니다 .
0
공백을 나타내려면 인쇄 하십시오. - 외부 라이브러리가 없습니다.
- 입력 문자열 만 함수에 전달 될 수 있습니다.
- 다른 언어의 경쟁력을 높이기 위해 기본 함수 선언은 중요하지 않으며 다른 표준 라이브러리를 가져 오지 않습니다.
#include
s,import
s 및using
s는 포함되지 않습니다. 그 밖의 모든 것. 여기에는#define
s 및 도우미 기능 이 포함 됩니다. 혼란 스러우면이 질문의 규칙 2 를 참조하십시오 . - 여러 공백은 실제로 공백 사이에서 일시 중지 할 필요가 없기 때문에
00
또는 로 표시 될 수 있습니다.0 0
{}
함수 서명의 일부로 간주 합니까? 예를 들어 내 코드가 인 경우 또는 function f(){alert('hi');}
의 문자를 계산해야 합니까? alert('hi');
{alert('hi');}
t9
다르게 작동합니다. 단어를 얻으려면 각 키를 한 번 클릭해야합니다.