略語の一般化
単語のリストとその略語の入力が与えられた場合、略語を形成できるパターンを出力します。 の入力例を見てみましょう 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 -------------------------------------------------------- …