2015-07-01

Regex Golf をやってみた 8

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

昨日はあまりにも眠く途中で断念してしまいました。
毎日続けるって難しいですね。
さて、気を取り直して今日の分、いきます。

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


以下、ネタバレ

左側はxが素数個並んだ文字列になっています。ここに挙がっている物に対応する事を考えると、左側の素数回繰り返しを考えるよりも右側の否定のほうが楽な気がします。

ということで xx の2回以上繰り返しはダメ。
^(?!(xx){2,}$)


左側は全部マッチ、右側は奇数のものだけ残りました。
続いて xxx の2回以上繰り返しはダメ。
^(?!((xx){2,}|(xxx){2,})$)


更に xxxxx の2回以上繰り返しはダメ。
^(?!((xx){2,}|(xxx){2,}|(x{5}){2,})$)


と、これでここに挙がっている物は解決出来ました。
ただ、正規表現で素数判定が出来るようなのでもっとスマートな書き方があるハズ。
正解にたどり着いていないのはスッキリしませんね…

後味が悪いですが9回目に続く…

0 件のコメント: