0

まず、これが宿題であることは明らかであり、十分な注意を払ったと思います。今、銀の大皿で解決策が私に渡されるとは思っていません。正しい方向に簡単に微調整するだけでいいので、始めましょう。

質問は:

アルファベット {0, 1} のすべての文字列で、0 の奇数長ブロックの直後に 1 の偶数長ブロックが続き、0 の偶数長ブロックの直後に 1 の奇数長ブロックが続きます。

私がやってきたことは、次のことから始めて、少しずつ取り組んでいることです。

偶数の 0、奇数の 1 のみに一致: ^[^0]*((00)+1(11)*)*$

奇数の 0 と偶数の 1 のみに一致: ^[^0]*(0(00)*(11)+)*$

両方をまとめると: ^[^0]*((00)+1(11)*)*(0(00)*(11)+)*$

これは最初はうまくいくと思っていましたが、次の場合にのみ機能します。

  • 001011
  • 001000010110001111など
  • 基本的に、意味のある式に現れるのと同じ順序で現れるその他のもの。

そしてそうではありません:

  • 011001など

私がこだわっているのは、上記のケースでどのように機能させるかを考え出すことです。ポジティブルックアヘッドを試みましたが、うまくいきませんでした。

誰にも指針がありますか?

4

2 に答える 2