确定有限状态机或确定有限自动机是一个能够实现状态转移的自动机。对于一个给定的属于该自动机的状态和一个属于该自动机字母表中的字符,它能根据事先给定好的转移函数转移到下一个状态。在编程时候,需要根据当前状态和各种可能的输入来实现不同的逻辑以及维护状态的变化,一般用大量的if...else或者switch...case来实现,其中包含状态机思想。当题目具有很多的逻辑判断时候,为了减少代码冗余,通过状态转移来实现逻辑判断。
确定有限状态自动机是一类计算模型,包含一系列状态。这些状态中有:(1)初始状态
(2)接受状态
起初,这个自动机处于「初始状态」。随后,它顺序地读取字符串中的每一个字符,并根据当前状态和读入的字符,按照某个事先约定好的「转移规则」,从当前状态转移到下一个状态;当状态转移完成后,它就读取下一个字符。当字符串全部读取完毕后,如果自动机处于某个「接受状态」,则判定该字符串「被接受」;否则,判定该字符串「被拒绝」。
联系:算法领域->KMP 工程领域->正则表达式的基础