第⼀部分先看偶数个零偶数个⼀的正则表达式:
⾸先应该明确⼀下问题
男装搭配技巧我们的问题等价于“偶数个0偶数个1的正规式是什么”,⽽不是“(00|11 | ( (01|10) (00|11) * (01| 10))) *就能表⽰偶数个0偶数个1的正规式”。
洗衣机质量女声学院可以想⼀下,在⼆进制串中0和1的个数的状态⽆⾮以下四种:
偶数个0,偶数个1 -------------0
偶数个0,奇数个1 -------------①
奇数个0,偶数个1 -------------②
奇数个0,奇数个1 -------------③
接下来我们画⼀下状态转换图:
进⽽可以表⽰为:(00|11 | (01|10) (00|11) * (01| 10))*
第⼆部分看偶数个零奇数个⼀的正则表达式:
这是陈意云⽼师习题集上的答案 :
even_0_even_1→(00|11)((01|10)(00|11)(01|10)(00|11))
even_0_odd_1→1even_0_even_1|0(00|11)(01|10)even_0_even_1
对于偶数个0和奇数个1构成的串,其第⼀个字符可能是0或1。
(1)如果是1,那么剩下的部分⼀定是偶数个0和偶数个1
姚晨老公(2)如果是0,那么经过若⼲个00或11,⼀定会出现⼀个01或10,才能保证0的个数是偶数,1的个数是奇数。若串还没有结束,剩余部分⼀定是偶数个0和偶数个1。
这样,正确的正规定义是:世界最大的鱼类
even_0_odd_1→1even_0_even_1|0(00|11)(01|10)even_0_even_1
发布评论