Deterministic Finite Automaton
自动机
主要是要明确 :
- 条件
- 状态
比如: leetCode8. 字符串转换整数 (atoi)
其中表格状态可以用unordered_map
构造,并且用一个state(int)记录当前的行
状态, get_col(char c)获取列
状态,table获取state行状态。
于是可以写出代码:
class Automation{
int state=1;
unordered_map<int,vector<int> > table={
{1,{1,2,3,4}},
{2,{4,4,3,4}},
{3,{4,4,3,4}},
{4,{4,4,4,4}}
};
int get_col(char c)
{
if(isspace(c))return 0;
if(c=='+'||c=='-')return 1;
if(isdigit(c)) return 2;
return 3;
}
public:
int sign=1;
long long re