在谈Leetcode 8 字符串转换为整数atoi (parse处理)

    科技2022-08-01  91

     

     

    边界如下:

    1. 开头空格

    2. 开头符号,可能-和+

    3. 如果遇到非法字符,那么输出当前解析到的答案

    4. 正数和负数范围越界

     

    这题推荐的做法就是直接解析处理。

    class Solution: def myAtoi(self, s: str) -> int: ls = list(s.strip()) if len(ls)==0: return 0 sign = -1 if ls[0] == '-' else 1 res, i, n = 0, 0, len(ls) if ls[0] == '-' or ls[0] == '+': i+=1 while i<n and ls[i].isdigit(): res = res*10 + ord(ls[i]) - ord('0') i+=1 return max(-2**31, min(sign * res,2**31-1))

    一种parse的通用处理方法是确定有限状态机,但是这种方法在面试中编码难度过大,不建议使用,了解即可。

    Processed: 0.010, SQL: 8