Dada una entrada de una lista de palabras y sus abreviaturas, genera el patrón mediante el cual se pueden formar las abreviaturas.
Tomemos el ejemplo de entrada de
potato ptao
puzzle pzze
como ejemplo (es decir, la abreviatura de potatois ptaoy la abreviatura de puzzleis pzze).
Considere todas las formas posibles de obtener ptaode potato. Una forma posible es tomar las letras primera, tercera, cuarta y sexta, a las que nos referiremos como
1346. Pero desde ty oaparecer varias veces en la palabra, hay varias otras maneras posibles de generar ptaoa partir de potato: 1546, 1342y 1542.
Del mismo modo, cabe destacar que pzzese pueden generar a partir puzzlede cualquiera de 1336,
1346, 1436, 1446. El único patrón que estas dos abreviaturas tienen en común es 1346; por lo tanto, esa debe ser la salida para esta entrada. Si son posibles varios patrones posibles, puede generar alguno, algunos o todos (al menos uno).
Puede suponer que:
Las palabras y abreviaturas de entrada contienen solo letras minúsculas.
Hay al menos un par de palabra / abreviatura en la entrada.
Es posible que cada abreviatura se forme a partir de su palabra correspondiente.
Siempre habrá al menos un patrón que forme cada abreviatura.
La longitud máxima de cada palabra es de 9 caracteres.
La entrada puede tomarse como cualquiera de los siguientes:
Matriz bidimensional / lista / matriz de tuplas / etc.
[[word, abbr], [word, abbr], ...]lista / matriz plana de 1 dimensión
[word, abbr, word, abbr, ...]cadena única, delimitada por cualquier carácter único que no sea una letra minúscula
"word abbr word abbr"hash / matriz asociativa / etc.
{word => abbr, word => abbr, ...}
En cualquiera de estas opciones de entrada, también se le permite intercambiar el orden de word / abbr (describa completamente el formato de entrada en su publicación).
La salida se puede dar como un solo número, una cadena delimitada por no dígitos, o una matriz / lista / tupla / etc. de números
Como se trata de código golf , el código más corto en bytes ganará.
Casos de prueba (recuerde que solo necesita generar ≥1 resultados si funcionan varios patrones):
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