Shortest regex for binary number with even number of 0s or odd number of 1s
finite-automata, regex, regular-language
Solution
Odd-1s part: `0*1(0|10*1)*`
Even-0s part, depends:
- Empty string is correct: `(1|01*0)*`
- No-0s is even-0s: `(1|01*0)+`
- Must have at least two 0s: `1*(01*01*)+` (as in OP)
old answer: correct under case 1 and 2
(1*(01*0)*)+ | 0*1(0*(10*1)*)*
Kudos to @OGHaza for helpful comments.
Problem
Write an expression that contains an even number of 0s or an odd number of 1s I got it down to: ``` 1*(01*01*)* + 0*10*(10*10*)* ``` where the first part represents an even number of 0s and the second part an odd number of 1s However, there's supposed to be a simplified solution that I'm not seeing. Any tips?