バックグラウンド
3年前、この男のトムマーフィーは、ポートマントーの考えを言語のすべての単語に拡張し、これをポートマントー(portmanteau plus tout [ すべてのフランス語])と呼びました。英語を108,709個の単語のリストとして定義すると、彼は次の2つのプロパティを持つ611,820個の文字のシーケンスを見つけることができました。
- すべての英語の単語は文字列に含まれています。
- 文字列に2つの隣接する文字を含む近隣は英語の単語です。
ここでは「(ビデオ解説と一緒に)このportmantoutを見つけることができるページへのリンクをね。
portmantout
portmantoutの2つのプロパティのうち最初のプロパティは簡単に理解できます。2つ目は、説明が必要な場合があります。
基本的に、単語は重複する必要があります。「golfcode」は、「fc」を含む単語がないため、英語のポートマントには決して表示されません。ただし、portmantoutで「codegolf」が見つかる場合があります。「ego」はギャップを埋めます(他のすべての文字のペアは「code」または「golf」のいずれかです)。
あなたのタスク:
文字列のリストを受け取り、リストのportmantoutを返すプログラムまたは関数を作成します。
このPython 3コードはportmantoutを検証します。
テストケース
すべてのリストは順不同です。あれは、
{"code", "ego", "golf"} -> "codegolf"
{"more", "elm", "maniac"} -> "morelmaniac" or "morelmorelmaniac" or "morelmorelmorelmaniac" or...
Would a morelmaniac be some sort of mycologist?
{"ab", "bc", "cd", "de", "ef", "fg", "gh", "hi", "ij", "jk", "kl", "lm", "mn", "no", "op", "pq", "qr", "rs", "st", "tu", "uv", "vw", "wx", "xy", "yz", "za"} -> "abcdefghijklmnopqrstuvwxyza" or "rstuvwxyzabcdefghijklmnopqrstuvwxyzabcdef" or any 27+ letters in order
そして、なぜですか?コードが妥当な時間内に実行される場合、マーフィーのサイトにある巨大なもの。
ルール
- コードを停止する必要があります。
- 実行ごとに同じportmantoutを返す必要はありません。
- あなたはすべての文字列が小文字のみで構成すると仮定して
a
てz
。 - portmantoutが不可能な場合、プログラムは何でもできます。例:
{"most", "short", "lists"}
- I / Oおよび抜け穴の標準ルールが適用されます。
これはcode-golfなので、各言語での最短の解決策(バイト単位)が勝ちです!ハッピーゴルフ!
{"sic", "bar", "rabbits", "cradle"} -> "barabbitsicradle"
{"mauve", "elated", "cast", "electric", "tame"} -> "mauvelectricastamelated"
(より多くのテストケース)