12
よくリンクされた挑戦
私が退屈しているときに時々する活動は、一致するペアでいくつかの文字を書くことです。次に、これらのキャラクターをつなぐために線を描画します(決して上にならないように重ねます)。たとえば、と書くと、次のように線を引きます。a b c b a cabcbacabcbac または私は書くかもしれませんa b b c a cabbcacabbcac これらの線を描いたら、チャンクの周りに閉じたループを描いて、描いた線がループと交差しないようにします。たとえば、最初のループでは描画できるのはループ全体だけですが、2番目のループでは s(またはその他すべて)の周りにループを描画できますbbb しばらくこれをいじると、一部の文字列が描画され、閉じたループにすべての文字が含まれるか、文字が含まれないことがわかります(最初の例のように)。このような文字列をリンクされた文字列と呼びます。 一部の文字列は複数の方法で描画できることに注意してください。たとえば、は次の両方の方法で描画できます(3つ目の方法は含まれていません)。b b b bbbbbbbbb または これらの方法のいずれかを描画して、行を交差させずに文字の一部を含む閉じたループを作成できる場合、文字列はうまくリンクされていません。(したがって、はうまくリンクされていません)b b b bbbbbbbbb 仕事 あなたの仕事は、うまくリンクされた文字列を識別するプログラムを書くことです。入力はすべての文字が偶数回出現する文字列で構成され、出力は2つの異なる一貫した値のいずれかである必要があります。 また、あなたのプログラムがうまくリンクされた文字列でなければなりません意味 プログラムでは、すべての文字が偶数回表示されます。 渡されたときに、真理値を出力する必要があります。 プログラムは、印刷可能なASCIIまたは独自のプログラムからの文字で構成される任意の文字列に対して正しい出力を生成できる必要があります。各文字が偶数回表示されます。 回答は、バイト単位の長さとしてスコア付けされ、バイト数が少ないほどスコアが高くなります。 ヒント 文字列は、各文字がその部分文字列内で偶数回出現するように、連続した空でない厳密な部分文字列が存在する場合、適切にリンクされません。 テストケース abcbac -> True abbcac -> False bbbb -> False abacbc -> True abcbabcb -> True abcbca …