2015-06-29

Regex Golf をやってみた 7

Regex Golf 7回目(6回目はこちら

正規表現によるパズルゲーム? Regex Golf 6問目 "A man, a plan" をやってみます


以下、ネタバレ

左側は回文でになっています。13文字までの回文に対応すれば良いと書いてあります。
ということでベタベタに書いてみます。
^(.|)(.|)(.|)(.|)(.|)(.|)(.|)\6\5\4\3\2\1$
これで1文字から13文字の回文にマッチするはず。


後はどこまで短く出来るか、ですがここに挙がっている回文は 4 〜 7 文字なのでまず、文字数を削ります。
^(.|)(.|)(.|)(.|)\3\2\1$
次に 1 〜 3 文字への対応を削ります。
^(.)(.)(.|)(.|)\3\2\1$
右側の文字列は先頭または途中から 4 〜 7 文字が回文になっている物はありますが、末尾 4 〜 7 文字が回文になっている文字列が無いので、行頭からの指定を外して
(.)(.)(.|)(.|)\3\2\1$
としてみます。


一応大丈夫そうです。
もっとスマートな書き方が出来ればいいんですが私にはこれが限界です。

回を重ねる毎にだんだん難しくなってきました。
そろそろ正解できなくなりそうです。

8回目に続く…

0 件のコメント: