leetcode-8. 字符串转换整数 (atoi)

题目来自

https://leetcode-cn.com/problems/string-to-integer-atoi/

leetcode-8. 字符串转换整数 (atoi)_第1张图片
leetcode-8. 字符串转换整数 (atoi)_第2张图片

解题思路

看到这题,想到的是正则匹配偷懒,去除开头的空格,以+、-、数字开头贪婪匹配整数。
若第一个字符非+、-、数字,则匹配不到返回0
将匹配出的整数与 2 32 − 1 , − 2 32 2^{32}-1,-2^{32} 2321232比较

正则表达式中
lstrip 用于去除字符串左边的空格
^ 用于匹配字符串开头
\d 匹配数字
[] 用于匹配[]内的字符

import re 

class Solution:
    def myAtoi(self, str: str) -> int:
        str = str.lstrip()
        pattern = re.compile(r'^[\+\-]?\d+')
        r = re.findall(pattern,str)
        if r == []:
            return 0
        else:
            r = int(r[0])

        return min(max(r,-2**31),2**31-1)

你可能感兴趣的:(leetcode)