単語のリストとその略語の入力が与えられた場合、略語を形成できるパターンを出力します。
の入力例を見てみましょう
potato ptao
puzzle pzze
例として(つまり、の略語potato
はptao
であり、の略語puzzle
はであるpzze
)。
取得するためにすべての可能な方法を検討ptao
からをpotato
。可能な方法の1つは、最初、3番目、4番目、6番目の文字を取得すること
1346
です。しかし、以来t
とo
言葉に複数回表示され、そこに生成するために、複数の他の可能な方法がありますptao
からはpotato
:1546
、1342
、と1542
。
同様に、音符pzze
から生成することができるpuzzle
のいずれかと1336
、
1346
、1436
、1446
。これら2つの略語に共通する唯一のパターンは1346
;です。したがって、それはこの入力の出力でなければなりません。複数の可能なパターンが可能な場合、それらのいずれか、一部、またはすべて(少なくとも1つ)を出力できます。
あなたはそれを仮定するかもしれません:
入力語と略語には小文字のみが含まれます。
入力に少なくとも1つの単語/略語のペアがあります。
すべての略語が、対応する単語から形成される可能性があります。
すべての略語を形成する少なくとも1つのパターンが常に存在します。
各単語の最大長は9文字です。
入力は、次のいずれかとして取得できます。
2次元配列/リスト/タプルの配列/など。
[[word, abbr], [word, abbr], ...]
フラットな1次元配列/リスト
[word, abbr, word, abbr, ...]
小文字ではない単一の文字で区切られた単一の文字列
"word abbr word abbr"
ハッシュ/連想配列/など
{word => abbr, word => 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