最近刷题lc8写一个string–>int的函数,结题思路是用限自动机的方案
- 穷举有几种数字状态“ ”,”+/-“,”0-9”,”其他字符”,对应的 start、signin_number、end
- 穷举每种状态之间转化关系
- 遇到每种字符后,处理每种状态的逻辑
源码如下:
1 | public class Solution { |
应用场景
当我们的系统复杂度到一定程度的时候,对象的状态分支会很多,我们可以选择用if,else来解决,但是最后往往会写出一堆几乎无法维护的屎山。那么我们可以将对象抽象成一个个状态,特殊情况实际上就是状态之间的转换。
比如上题,就是有限的状态之间的转换。