文を入力しているときに気が散ってしまい、同じ単語を2回、単語を2回続けて入力してしまうことがあります。
確かめる 他の人がこれに悩まされないするために、あなたの仕事はこの問題を解決するプログラムを書くことです!
仕事
入力文字列を指定します(言語にとって重要な場合は、改行を含まないASCIIのみの入力を想定できます。) str、中間に2回連続して発生する部分文字列が含まれ、このインスタンスを1つ持つ文字列を返します部分文字列が削除されました。
複数の可能性がある場合は、可能な限り最短の回答を返します(つまり、連続する最長の繰り返し部分文字列を選択して削除します)。
複数の同じ長さの連続する繰り返し部分文字列の場合、最初の(つまり、文字列を前後に読んでいるときに最初に現れる)部分文字列を削除します。
入力が正しい(つまり、連続した繰り返し部分文字列が常に含まれている)と想定することもできます。
例
- 入力:
hello hello world->出力:hello world。 - 入力:
foofoo->出力:foo。(そのため、はい、文字列は繰り返し部分で2回だけ構成されます)。 - 入力:
aaaaa->出力:aaa、最も長い繰り返し連続部分文字列がここにあるためaa。 - 入力:
Slartibartfast->これは有効な入力ではありません。連続する繰り返し部分文字列が含まれていないため、このケースを処理する必要はありません。 - 入力:
the few the bar->これは別の無効な入力です。これは、繰り返し部分が元の部分の直後に続く必要があるためです。この場合、theおよびtheそれらの間の何かで区切られているため、この入力は無効です。 - 入力:
ababcbc->出力:abcbc。2つの可能な最長の連続した繰り返し部分文字列があるabとbc。としてab以前の文字列で発生した、これは正解です。 - 入力:
Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo。出力:Buffalo buffalo buffalo buffalo Buffalo buffalo。(実行される置換では、大文字と小文字が区別されます)。 - 入力:
Sometimes it happens that while typing a sentence, I am distracted and I end up typing the same couple of words twice couple of words twice in succession.->出力:Sometimes it happens that while typing a sentence, I am distracted and I end up typing the same couple of words twice in succession.。最長の連続する繰り返し部分文字列のみが削除されます。
これはcode-golfであるため、コードはできるだけ短くする必要があります。そのため、バイト単位の最短回答が優先されます。がんばろう!
pにhappens
Sometimes it happens that while typing a sentence, I am distracted and I end up typing the same couple of words twice couple of words twice in succession.を入力するとき、つまり入力として、出力はである必要がありますSometimes it happens that while typing a sentence, I am distracted and I end up typing the same couple of words twice in succession.。見つかった最長の重複のみが削除されます。