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