LeetCode上题目很多,其中也不乏很多难题,但是为什么要讲这道题呢? 因为这题看上去并不难,但是确非常麻烦,麻烦的原因题目没有明确告诉你哪些是合法数字,哪些不是合法数字,你只能一个个的去试验. 另外一点,合法的数形式很多,如果你使用不对方法,那么会让你代码编写起来非常的痛苦,漏洞百出,各种if
和else
…
这里我推荐先根据题意,写出正则表达式,然后根据正则表达式画出NFA,然后根据NFA的状态转移编写代码,你就会发现此题就异常的清晰.
其中0代表开始状态,2,4,7,8都是合法状态.