题目描述
解题思路
正则表达式 | 描述 |
---|---|
^ | 匹配字符串开头 |
[+-] | 代表一个+字符或-字符 |
? | 前面一个字符可有可无 |
\d | 一个数字 |
+ | 前面一个字符的一个或多个 |
\D | 一个非数字字符 |
* | 前面一个字符的0个或多个 |
max(min(数字, 231 - 1), -231) 用来防止结果越界
Python代码
import re
class Solution:
def myAtoi(self, str: str) -> int:
INT_MAX = 2147483647
INT_MIN = -2147483648
str = str.lstrip() #清除左边多余的空格
num_re = re.compile(r'^[\+\-]?\d+') #设置正则规则
num = num_re.findall(str) #查找匹配的内容
num = int(*num) #由于返回的是个列表,解包并且转换成整数
return max(min(num,INT_MAX),INT_MIN) #返回值
网友评论