这个题我是用DFA做的。但这不是重点,处理溢出才是。 这个函数的目的是让合法不溢出的str,可以一一对应到一个int。 一开始,我是先得到结果的符号,然后再把后续部分当正数处理(突然变负就是溢出),最后乘符号位。但发现用例过不了,这是因为正数和负数不是对称分布的,最后处理符号位会使得最负的数,本来可以表示,却因为其绝对值不能表示而被判非法。 后来改成在刚处理数字位的时候(进入num状态之前),就全程带着符号处理(符号突变就是溢出),解决了判断溢出的问题。 class Solution { public: enum stat { begin, posi, nega, zero, num ...