도전:
음악 컬렉션에 수천 곡의 노래가 있으며 운 좋게도 내가 좋아하는 플레이어에는 검색 기능이 있습니다. 또한 추억이 있습니다. 내 컬렉션에있는 모든 노래의 제목을 기억할 수 있습니다. 그러나 나는 매우 게으르고 타이핑하는 것을 좋아하지 않습니다. 각각의 추가 키 입력은 번거로운 일입니다!
- 하나의 노래를 분리하기 위해 검색해야하는 가장 짧은 문자열은 무엇입니까? 검색 할 때 입력을 최소화하는 데 사용할 수있는 키 목록을 기억하도록 도와주세요!
이것은 code-golf 이므로 가장 짧은 코드가 승리합니다.
규칙 :
노래 제목의 입력 목록이 제공되면 다음 제약 조건이 적용되는 검색 키 목록을 생성하십시오.
- 각 노래 제목에는 검색 키가 있어야합니다.
- 출력 목록의 총 문자 수는 가능한 한 적어야합니다.
- 내가 가장 좋아하는 음악 플레이어는 foobar2000입니다 .
- 검색 기능은 대소 문자를 구분하지 않습니다. (
apple
와 동일aPpLE
) - 각 검색 키는 공백으로 구분 된 순서대로 하나 이상의 "단어"로 구성되어야합니다.
- 각 단어는 해당 노래 제목 의 하위 문자열 이어야합니다 .
- 동일한 하위 문자열이 여러 번 지정된 경우 해당 노래 제목에서 여러 번 나타나야합니다.
- 부분 문자열 자체에 공백이 있으면 해당 부분 문자열을 따옴표로 묶어야합니다.
- 검색 기능은 대소 문자를 구분하지 않습니다. (
힌트 :
- 일부 노래 제목의 경우 규칙 2를 충족하는 여러 개의 검색 키가있는 경우가 종종 있습니다. 이러한 경우 하나의 키가 수행되지만 모두 나열 할 수있는 브라우니 포인트가 생깁니다.
- 입력 목록은 ASCII 문자로만 가정되지만 UTF-8 호환성을 위해 브라우니 포인트가 부여됩니다.
- 규칙 3을 따르기가 어려웠습니까? 작동 방식은 다음과 같습니다.
예:
내 음악 컬렉션이 두 개의 앨범으로 만 구성된 경우 Michael Jackson의 Off the Wall 과 Thriler는 다음 과 같습니다 .
위의 목록을 사용하여 프로그램을 테스트 할 수 있습니다. 두 번째 목록의 원시 버전은 다음과 같습니다.
["Don't Stop 'Til You Get Enough","Rock with You","Working Day and Night","Get on the Floor","Off the Wall","Girlfriend","She's out of My Life","I Can't Help It","It's the Falling in Love","Burn This Disco Out","Wanna Be Startin' Somethin'","Baby Be Mine","The Girl Is Mine","Thriller","Beat It","Billie Jean","Human Nature","P.Y.T. (Pretty Young Thing)"]
["Wanta Be A Wanna B","Wanta Bea A Wanna B","Wanna Be A Wanna Bea"]
?