이 문제를 해결하려면 Abbrev
가능한 적은 코드로 Ruby 모듈을 구현해야 합니다.
도전
입력은 언어의 배열 (배열, 목록, 순서 등)로 사용하는 언어가 무엇이든됩니다. 함수를 작성하거나 STDIN에서 쉼표로 구분 된 단어를 승인 할 수 있습니다.
그런 다음 해당 문자열에 대한 명확한 접두사 세트를 계산해야합니다. 즉, 약어의 해시 (또는 맵, 객체 등)를 원래 문자열로 반환해야합니다.
"접두사"는 문자열의 시작 부분에서 시작하는 원래 문자열의 부분 문자열입니다. 예를 들어 "pref"는 "prefix"라는 단어의 접두사입니다.
명확한 접두사는 단 하나 개의 단어를 의미 할 것입니다. 예를 들어, 입력이
car,cat
인ca
경우 "car"또는 "cat"을 의미 할 수 있으므로 명확한 접두사가 아닙니다.이 규칙의 예외는 단어가 항상 자신의 접두사라는 것입니다. 이 같은 입력 등이있는 경우 예를 들어
car,carpet
,car:car
귀하의 출력에 있어야합니다.
그런 다음 해시 / 맵 / 오브젝트 등을 반환 할 수 있습니다. 함수에서 (또는 귀하의 언어로 동등한 작업을 수행하십시오) 또는
key:value
형식으로 STDOUT에 쌍으로 인쇄하십시오f:foo,fo:foo,...
. 키-값 쌍은 코드가 짧아지면 공백으로 구분 될 수도 있습니다.
테스트 사례
Input code,golf,going
Output c:code,co:code,cod:code,code:code,gol:golf,golf:golf,goi:going,goin:going,going:going
Input pie
Output p:pie,pi:pie,pie:pie
Input pie,pier,pierre
Output pie:pie,pier:pier,pierr:pierre,pierre:pierre
Input a,dog
Output a:a,d:dog,do:dog,dog:dog
규칙
입력에 중복 요소가 포함되지 않습니다.
출력 순서는 상관 없습니다. 정렬 할 필요가 없습니다.
내장
Abbrev
모듈 / 기능 / 루비와 같은 것을 사용할 수 없습니다 .이것은 code-golf 이므로 바이트 단위의 가장 짧은 코드가 이길 것입니다!
key:value\nkey:value\nkey:value
있습니까 ...?