주요 시스템은 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뒤에 삽입 할 수 없다는 것 입니다.sc숫자는 실제로 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은 zdnmrlshchvband를 제외한 모든 긴 단어를 제공해야합니다 shthnmrlchgvb.
stnmrljkfp
zthnmrlshqfb
asatanamaralajakafapa
aizxydwwwnhimouooraleshhhcavabe
zdnmrlshcvb
sthnmrlchgvb
입력 99은 다음을 제공해야합니다.
bob
pop
bop
bopy
(출력 단어는 순서가 상관 없습니다.)
채점
바이트 단위 의 최단 제출 이 이깁니다. Tiebreaker는 먼저 게시 된 제출물로 이동합니다.
멋진 관련 사이트 : numzi.com .