단어 목록과 약어를 입력하면 약어를 구성 할 수있는 패턴이 출력됩니다.
입력 예제를 보자.
potato ptao
puzzle pzze
예를 들어, 약어는 potatois ptao, 약어는 puzzle입니다 pzze.
얻기 위해 가능한 모든 방법을 고려 ptao에서가 potato. 가능한 한 가지 방법은 첫 번째, 세 번째, 네 번째 및 여섯 번째 글자를 취하는 것
1346입니다. 하지만 이후 t및 o단어에 여러 번 표시, 거기에 생성하는 여러 다른 가능한 방법입니다 ptao으로부터는 potato: 1546, 1342,와 1542.
마찬가지로, 참고 pzze로부터 생성 될 수있는 puzzle의와 1336,
1346, 1436, 1446. 이 두 약어가 공통적으로 갖는 유일한 패턴은 1346; 따라서이 입력에 대한 출력이어야합니다. 여러 개의 가능한 패턴이 가능한 경우, 일부 또는 전부 (적어도 하나)를 출력 할 수 있습니다.
다음과 같이 가정 할 수 있습니다.
입력 단어 및 약어에는 소문자 만 포함됩니다.
입력에 하나 이상의 단어 / 약어 쌍이 있습니다.
모든 약어가 해당 단어로 구성 될 수 있습니다.
모든 약어를 형성하는 패턴은 항상 하나 이상 있습니다.
각 단어의 최대 길이는 9 자입니다.
다음 중 하나로 입력 할 수 있습니다.
튜플 등의 2 차원 배열 / 목록 / 배열
[[word, abbr], [word, abbr], ...]평평한 1 차원 배열 / 목록
[word, abbr, word, abbr, ...]소문자가 아닌 단일 문자로 구분되는 단일 문자열
"word abbr word abbr"해시 / 연관 배열 등
{word => abbr, word => abbr, ...}
이러한 입력 옵션 중 하나에서 단어 / abbr의 순서를 바꿀 수도 있습니다 (게시물의 입력 형식을 완전히 설명하십시오).
출력은 단일 숫자, 비 숫자로 구분 된 문자열 또는 배열 / 목록 / 튜플 / 등으로 제공 될 수 있습니다. 숫자.
이것은 code-golf 이므로 바이트 단위의 가장 짧은 코드가 승리합니다.
테스트 사례 (여러 패턴이 작동하는 경우 ≥1 결과 만 출력해야 함) :
In Out
--------------------------------------------------------
potato ptao puzzle pzze | 1346
aabbcc abc fddeef def | 246
prgrmming prgmg puzzles pzzlz | 14353
aaaaa a bbbb b ccc c dd d e e | 1
aaaaa a bbbb b ccc c | 1, 2, 3
abcxyz zbcyax | 623514
abcxyz acbbacbcbacbbac | 132213232132213
potato ptao | 1346, 1546, 1342, 1542
a aaaaa | 11111