Dato un input di un elenco di parole e le loro abbreviazioni, genera lo schema con cui le abbreviazioni possono essere formate.
Facciamo l'esempio di input di
potato ptao
puzzle pzze
come esempio (ovvero l'abbreviazione di potatois ptaoe l'abbreviazione di puzzleis pzze).
Considera tutti i modi possibili per ottenere ptaoda potato. Un modo possibile è quello di prendere la prima, la terza, la quarta e la sesta lettera, a cui faremo riferimento
1346. Ma dal momento che te oapparire più volte nella parola, ci sono più altri modi possibili per generare ptaoda potato: 1546, 1342, e 1542.
Analogamente, nota che pzzepuò essere generato da puzzleuna qualsiasi delle 1336,
1346, 1436, 1446. L'unico modello che queste due abbreviazioni hanno in comune è 1346; pertanto, questo deve essere l'output per questo input. Se sono possibili più pattern possibili, è possibile emetterne uno, alcuni o tutti (almeno uno).
Puoi presumere che:
Le parole e le abbreviazioni di input contengono solo lettere minuscole.
C'è almeno una coppia di parole / abbreviazioni nell'input.
È possibile che ogni abbreviazione sia formata dalla sua parola corrispondente.
Ci sarà sempre almeno un modello che forma ogni abbreviazione.
La lunghezza massima di ogni parola è di 9 caratteri.
L'input può essere preso come uno dei seguenti:
Matrice / elenco / matrice di tuple bidimensionali / ecc.
[[word, abbr], [word, abbr], ...]matrice / elenco monodimensionali piatti
[word, abbr, word, abbr, ...]stringa singola, delimitata da un singolo carattere che non è una lettera minuscola
"word abbr word abbr"hash / array associativo / ecc.
{word => abbr, word => abbr, ...}
In una di queste opzioni di input, puoi anche scambiare l'ordine di word / abbr (descrivi completamente il formato di input nel tuo post).
L'output può essere dato come un singolo numero, una stringa delimitata da non cifre o un array / elenco / tupla / ecc. di numeri.
Poiché si tratta di code-golf , vincerà il codice più breve in byte.
Casi di test (ricorda che devi solo produrre risultati ≥1 se funzionano più pattern):
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