コンパイラクラスの宿題に取り組んでいますが、次の問題があります。
奇数のaまたは奇数のb(あるいはその両方)を含むa'sおよびb'のすべての文字列の正規表現を記述します。
多くのホワイトボード作業の後、私は次の解決策を思いつきました。
(aa|bb)* (ab|ba|a|b) ((aa|bb)* (ab|ba) (aa|bb)* (ab|ba) (aa|bb)*)*
しかし、これは私がそれを得ることができる最も単純化されたものですか?状態の数を最小限に抑えてDFAを構築し、それが単純化に役立つかどうかを確認することを検討しましたが、最初にSOの正規表現の達人に尋ねると思いました。