주요 시스템은 A는 니모닉 들이보다 쉽게 기억 될 수 있도록 단어로 숫자를 변환하는 장치입니다.
단어의 발음이 소리 나는 방식을 기반으로하지만 문제의 단순성을 유지하기 위해 단어의 철자에 대해서만 관심을 갖습니다. 즉, 잘못된 전환이 발생하지만 괜찮습니다.
단순화 된 주요 시스템을 사용하여 숫자를 단어로 변환하려면 :
- 각각
0
을s
또는로 교체하십시오z
. (일부 일 수도 있고s
일부 일 수도 있습니다z
. 아래도 마찬가지입니다.)- 각각의 교체
1
와 함께t
또는d
나th
.- 각각을
2
로 바꿉니다n
.- 각각을
3
로 바꿉니다m
.- 각각을
4
로 바꿉니다r
.- 각각을
5
로 바꿉니다l
.- 각각의 교체
6
와 함께j
또는sh
나ch
.- 각각의 교체
7
와 함께k
하거나c
또는g
나q
.- 각각
8
을f
또는로 교체하십시오v
.- 각각
9
을p
또는로 교체하십시오b
.- 가능한 경우
aehiouwxy
아무 곳에 나 문자를 추가하여 실제 영어 단어를 만드 십시오 .
유일한 예외는 또는h
뒤에 삽입 할 수 없다는 것 입니다.s
c
숫자는 실제로 0-9 사이의 숫자 (십진수 또는 쉼표 또는 부호 없음) 일 수 있습니다.
단어는 소문자 az 만 포함 할 수 있습니다.
예
숫자 32
는로 변환해야합니다 ?m?n?
. 여기서 ?
문자로 만든 유한 문자열을 나타냅니다 aehiouwxy
( 원하는 경우 자유 모노 이드 의 문자열 ). 진짜 영어 단어로 만들 수있는이 방법은 여러 가지가 있습니다 : mane
, moon
, yeoman
, 등
숫자 05
는 ?s?l?
또는 로 변환 될 수 있습니다 ?z?l?
. 가능성은 easily
, hassle
및 hazel
입니다. 단어 shawl
는 h
뒤에 배치 될 수 없으므로 허용되지 않습니다 s
. 로 잘못 읽힐 것 65
입니다.
도전
숫자 0-9의 문자열을 받아 단순화 된 주 시스템 니모닉을 사용하여 변환 할 수있는 모든 단어를 찾는 프로그램 또는 함수를 작성하십시오.
프로그램은 모든 "실제"영어 단어를 정의하는 단어 목록 텍스트 파일에 액세스 할 수 있습니다. 이 파일의 각 줄에는 하나의 소문자 az 단어가 있으며 선택적으로 후행 줄 바꿈이 있다고 가정 할 수 있습니다. 다음은 테스트에 사용할 수있는 실제 단어 목록입니다. 이 단어 목록 파일이 f
(또는 더 긴 것) 호출 되고 편리한 디렉토리에 있다고 가정 할 수 있습니다 .
35 바이트 페널티 (점수에 35를 더함)의 경우 단어 목록이 이미 문자열 목록으로 변수에로드되었다고 가정 할 수 있습니다. 주로 파일을 읽을 수없는 언어를위한 것이지만 제출시 파일을 활용할 수 있습니다.
프로그램은 입력 번호를 변환 할 수있는 단어 목록의 모든 단어를 출력해야합니다 . 그것들은 줄마다 하나씩 stdout (또는 이와 유사한)으로 인쇄되거나 (선택적인 후행 줄 바꿈과 함께) 함수를 작성하기로 선택한 경우 문자열 목록으로 리턴 될 수 있습니다. 단어 목록은 반드시 알파벳순 일 필요는 없으며 출력도 필요하지 않습니다.
가능한 단어가 없으면 출력 (또는 목록)이 비어 있습니다. 빈 문자열이 입력되면 출력도 비어 있습니다.
stdin, 명령 행 또는 함수에 대한 문자열 인수로 입력하십시오. 단어 목록 또는 파일 이름은 입력의 일부가 아닌 숫자 문자열이어야합니다.
단어 목록이 아닌 단어 목록에서 하나의 단어 만 일치시킵니다. 단어 noon
는에 대한 결과 중 하나 일 수 22
있지만 단어 순서 no one
는 그렇지 않습니다.
테스트 사례
이것이 단어 목록이라고 가정하십시오.
stnmrljkfp
zthnmrlshqfb
asatanamaralajakafapa
aizxydwwwnhimouooraleshhhcavabe
zdnmrlshcvb
zdnmrlshchvb
sthnmrlchgvb
shthnmrlchgvb
bob
pop
bop
bopy
boppy
입력 0123456789
은 zdnmrlshchvb
and를 제외한 모든 긴 단어를 제공해야합니다 shthnmrlchgvb
.
stnmrljkfp
zthnmrlshqfb
asatanamaralajakafapa
aizxydwwwnhimouooraleshhhcavabe
zdnmrlshcvb
sthnmrlchgvb
입력 99
은 다음을 제공해야합니다.
bob
pop
bop
bopy
(출력 단어는 순서가 상관 없습니다.)
채점
바이트 단위 의 최단 제출 이 이깁니다. Tiebreaker는 먼저 게시 된 제출물로 이동합니다.
멋진 관련 사이트 : numzi.com .