【形式语言与自动机】正则表达式题目

正则表达式含义示例
( 0 + 1 ) ∗ (0+1)^* (0+1)由0和1构成的任意长度的字符串
( 0 + 1 ) n (0+1)^n (0+1)n由0和1构成的长度为n的字符串

题目1: 由0和1构成的字符串中,倒数第3个字符是1的全部串。在这里插入图片描述

题目2:由0和1构成的字符串中,没有连续的0的全部串。

写法一: 1 ∗ ( 01 1 ∗ ) ∗ ( 0 + ε ) 1^*(011^*)^*(0+\varepsilon) 1(011)(0+ε)

一个没有连续的0的字符串的结构可以看成是:

  1. 中间部分:类似于"011-0111-01-01-0111"
  2. 开头部分:可以加上若干个1: “111-0101011101”
  3. 结尾部分:可以加上1个0: ”01101011-0"
正则表达式含义示例
01 1 ∗ 011^* 011 0 1 + 01^+ 01+,由一个0和至少一个1组成的字符串{01, 011, 0111, 01111, …}
( 01 1 ∗ ) ∗ (011^*)^* (011)以0开头且以1结尾的、没有连续的0的字符串“011-0111-01-01-0111”
1 ∗ ( 01 1 ∗ ) ∗ 1^*(011^*)^* 1(011)解决“以0开头”)以1结尾的、没有连续的0的字符串开始位置可以有若干个1: “111-0101011101”;也可以一个1也没有: “0101011101”
( 01 1 ∗ ) ∗ ( 0 + ε ) (011^*)^*(0+\varepsilon) (011)(0+ε)解决“以1结尾”)以0开头的、没有连续的0的字符串可以以0结尾:01101011-0,也可以不以0结尾:01101011
1 ∗ ( 01 1 ∗ ) ∗ ( 0 + ε ) 1^*(011^*)^*(0+\varepsilon) 1(011)(0+ε)没有连续的0的字符串

写法二: ( 0 + ε ) ( 1 1 ∗ 0 ) ∗ 1 ∗ (0+\varepsilon)(11^*0)^*1^* (0+ε)(110)1

一个没有连续的0的字符串的结构可以看成是:

  1. 中间部分:类似于"110-1110-10-110"
  2. 开头部分:可以加上1个0: “0-110110111010”
  3. 结尾部分:可以加上若干个1: “11010110-11111”
正则表达式含义示例
1 1 ∗ 0 11^*0 110 1 + 0 1^+0 1+0,由至少一个1和一个0组成的字符串{10, 110, 1110, 11110, …}
( 1 1 ∗ 0 ) ∗ (11^*0)^* (110)以1开头且以0结尾的、没有连续0的字符串“110-1110-10-110”
( 0 + ε ) ( 1 1 ∗ 0 ) ∗ (0+\varepsilon)(11^*0)^* (0+ε)(110)以0结尾的、没有连续0的字符串“0-101101110”或"101101110"
( 1 1 ∗ 0 ) ∗ 1 ∗ (11^*0)^*1^* (110)1以1开头的、没有连续0的字符串“110110110-11111”
( 0 + ε ) ( 1 1 ∗ 0 ) ∗ 1 ∗ (0+\varepsilon)(11^*0)^*1^* (0+ε)(110)1没有连续0的字符串

写法三: ( 1 + 01 ) ∗ ( 0 + ε ) (1+01)^*(0+\varepsilon) (1+01)(0+ε)

一个没有连续的0的字符串的结构可以看成是:

  1. 中间部分:类似于"01-1-01-1-1-01-01-01-1-1"(每一个位置可以是01或1)
  2. 结尾部分:可以加上一个0
正则表达式含义示例
( 1 + 01 ) ∗ (1+01)^* (1+01)以1结尾的、没有连续0的字符串“01-1-01-1-1-01-01-01-1-1”
( 1 + 01 ) ∗ ( 0 + ε ) (1+01)^*(0+\varepsilon) (1+01)(0+ε)没有连续0的字符串

写法四: ( 0 + ε ) ( 1 + 10 ) ∗ (0+\varepsilon)(1+10)^* (0+ε)(1+10)

一个没有连续的0的字符串的结构可以看成是:

  1. 中间部分:类似于"1-10-1-1-10-10-1-10"(每一个位置可以是10或1)
  2. 开头部分:可以加上一个0
正则表达式含义示例
( 1 + 10 ) ∗ (1+10)^* (1+10)以1开头的、没有连续0的字符串“1-10-1-1-10-10-1-10”
( 0 + ε ) ( 1 + 10 ) ∗ (0+\varepsilon)(1+10)^* (0+ε)(1+10)没有连续0的字符串

题目3

在这里插入图片描述题目中的正则表达式(记为R) 1 ∗ + 1 ∗ 0 ( 1 1 ∗ 0 ) ∗ 1 1 ∗ 1^*+1^*0(11^*0)^*11^* 1+10(110)11,由两部分组成:

  1. 1 ∗ 1^* 1:全1串
  2. 1 ∗ 0 ( 1 1 ∗ 0 ) ∗ 1 1 ∗ 1^*0(11^*0)^*11^* 10(110)11
    在这里插入图片描述

用排除法来选择:

  • R一定以1结尾:排除A、C
  • 答案B一定以1开头,但是R可以以0开头,排除B

答案选D

题目4

在这里插入图片描述字母表{a, b, c}上的任意长度串: ( a + b + c ) ∗ (a+b+c)^* (a+b+c)

至少包含一个a和至少一个b,有两种情况:

  1. 先a后b
  2. 先b后a
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值