正規表現によるパズルゲーム? 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 件のコメント:
コメントを投稿