Étant donné l'entrée d'une liste de mots et de leurs abréviations, affichez le modèle par lequel les abréviations peuvent être formées.
Prenons l'exemple d'entrée de
potato ptao
puzzle pzze
à titre d'exemple (c'est-à-dire l'abréviation de potato
is ptao
et l'abréviation de puzzle
is pzze
).
Considérez toutes les façons possibles d'obtenir ptao
de potato
. Une façon possible consiste à prendre les première, troisième, quatrième et sixième lettres, que nous appellerons
1346
. Mais puisque t
et o
apparaissent plusieurs fois dans le mot, il existe plusieurs autres façons possibles de générerptao
de potato
: 1546
, 1342
et 1542
.
De même, notez que vous pzze
pouvez générer à partir puzzle
de1336
,
1346
, 1436
, 1446
. Le seul modèle que ces deux abréviations ont en commun est 1346
; par conséquent, cela doit être la sortie de cette entrée. Si plusieurs modèles possibles sont possibles, vous pouvez en sortir n'importe lequel, certains ou tous (au moins un).
Vous pouvez supposer que:
Les mots et abréviations saisis ne contiennent que des lettres minuscules.
Il y a au moins une paire mot / abréviation dans l'entrée.
Il est possible que chaque abréviation soit formée à partir de son mot correspondant.
Il y aura toujours au moins un motif qui formera chaque abréviation.
La longueur maximale de chaque mot est de 9 caractères.
L'entrée peut être considérée comme l'un des éléments suivants:
Tableau 2 dimensions / liste / tableau de tuples / etc.
[[word, abbr], [word, abbr], ...]
tableau / liste unidimensionnel plat
[word, abbr, word, abbr, ...]
chaîne unique, délimitée par un caractère unique qui n'est pas une lettre minuscule
"word abbr word abbr"
hachage / tableau associatif / etc.
{word => abbr, word => abbr, ...}
Dans chacune de ces options de saisie, vous êtes également autorisé à permuter l'ordre des mots / abréviations (veuillez décrire complètement le format de saisie dans votre message).
La sortie peut être donnée sous la forme d'un nombre unique, d'une chaîne délimitée par des non-chiffres ou d'un tableau / liste / tuple / etc. des nombres.
Puisqu'il s'agit de code-golf , le code le plus court en octets gagnera.
Cas de test (rappelez-vous que vous devez uniquement générer des résultats ≥1 si plusieurs modèles fonctionnent):
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