2015-06-25

Regex Golf をやってみた 4

Regex Golf 4回目(3回目はこちら

正規表現によるパズルゲーム? Regex Golf 4問目 "Backrefs" をやってみます


以下、ネタバレ


ざっと見た感じ、左と右の違いは…
  • 左側は 3 文字以上の文字列が 2 回現れる
    • 1つめなら allochirally で all が 2 回
    • 2つめなら anticovenanting で anti が 2 回
    • 3つめなら barbary で bar が 2 回
  • 右側は 3 文字以上の文字列が 2 回現れない
と思われます。
ルールが分かってしまえば簡単。

  • 任意の3文字以上(後で使うので括弧で括る):(...+)
  • 間に任意の文字列が入ってもよい:.*
  • 1つ目の括弧で括った文字列:\1
に該当する文字列と言うことで
(...+).*\1
で良さそう。


で、よくよく考えてみると 3 文字以上の文字列が繰り返し出てきますが、「以上」は考慮する意味がありません。
また、右側に該当する物がない限り 2 文字でもいいはずです。

試してみたら 2 文字だと右に該当する物があるため、3 文字がベスト。
ということで私の解答はこうです。


5回目に続く…

0 件のコメント: