正規表現によるパズルゲーム? Regex Golf 9問目 "Order" に挑戦です。
お題は "Order" です。「順序」ですね。
左側は先頭から a〜z の順に文字が現れています。
以下、ネタバレ
と言うことで
- ^ 行頭から
- a* a が0文字以上繰り返し
- b* b が0文字以上繰り返し
- c* c が0文字以上繰り返し
- d*e*f*g*h*i*j*k*l*m*n*o*p*q*r*s*t*u*v*w*x*y*z* 同様に d 〜 z を順に0文字以上繰り返し
- $ 行末まで
^a*b*c*d*e*f*g*h*i*j*k*l*m*n*o*p*q*r*s*t*u*v*w*x*y*z*$でいいでしょう。
後はこれを縮めるために左側に無い文字を減らしていきます。
左側には j, k, q, u, v, x が無いので
^a*b*c*d*e*f*g*h*i*l*m*n*o*p*r*s*t*w*y*z*$でいいでしょう。
問題のタイトルに
Order — Cheat.とあるのでもう少し、並びを完全に限定しなくてもいいんじゃないかと思い
^[ab]*c*d*e*f*g*h*i*l*m*n*o*p*r*s*t*w*y*z*$のように少しずつ変えていったところ
^[abcdefghi]*[lmnoprstwyz]*$でも OK でした。後は [abcdefghi] を範囲で表す書き方にして
^[a-i]*[l-z]*$
ずいぶん文字数を減らすことが出来ました。
12回目は 10 問目 "Triples" に挑戦です。
0 件のコメント:
コメントを投稿