给出一个自动机的代码实例
时间: 2024-03-03 13:49:11 浏览: 16
以下是一个简单的自动机的 Python 代码实例,它是一个接受二进制字符串并检查其是否以 "01" 结尾的自动机:
```python
class Automaton:
def __init__(self):
self.state = "q1"
def transition(self, c):
if self.state == "q1":
if c == "0":
self.state = "q1"
elif c == "1":
self.state = "q2"
elif self.state == "q2":
if c == "0":
self.state = "q3"
elif c == "1":
self.state = "q2"
elif self.state == "q3":
if c == "0" or c == "1":
self.state = "q3"
def is_valid(self, s):
for c in s:
self.transition(c)
return self.state == "q3"
```
上述代码定义了一个名为 Automaton 的类,它有一个状态变量 self.state,其初始值为 "q1"。该类有两个方法:transition() 和 is_valid()。transition() 方法接受一个字符 c,根据当前状态 self.state 和字符 c 的值,更新状态 self.state。is_valid() 方法接受一个字符串 s,遍历字符串 s,每次调用 transition() 方法更新状态 self.state,最后检查是否以 "01" 结尾,如果是,返回 True,否则返回 False。