📅  最后修改于: 2023-12-03 15:41:24.029000             🧑  作者: Mango
自动机理论是计算机科学中的一个重要分支,它研究的是有限状态机(finite state machine)与形式语言之间的关系。自动机理论经常用于编译器、文本编辑器、语言识别等领域。
自动机理论套装9提供了一套完整的自动机理论算法和数据结构,包含了有限自动机(DFA)、非确定有限自动机(NFA)、正则表达式、文法、语言等基础内容,也提供了相关算法的实现,并有丰富的练习题和实例。
下面是对于正则表达式匹配算法的简单实现,可以支持 '.' 和 '*' 通配符,以及多种正则表达式的组合:
def is_match(s: str, p: str) -> bool:
if not p:
return not s
first_match = bool(s) and p[0] in {s[0], '.'}
if len(p) >= 2 and p[1] == '*':
return is_match(s, p[2:]) or (first_match and is_match(s[1:], p))
else:
return first_match and is_match(s[1:], p[1:])