题目描述请点击查看LeetCode 题目描述
Python3 代码解答如下:
import re
class Solution:
def myAtoi(self, str):
"""
:type str: str
:rtype: int
"""
s = str.strip() #去掉首尾空字符
"""
1.当字符串不为空时
2.首字符是减号/加号并且第二个字符是0~9
3.首字符是0~9
"""
if len(s) and (((s[0] == '-' or s[0] == '+') and len(s) > 1 and s[1] >= '0' and s[1] <= '9') or (s[0] >= '0' and s[0] <= '9')):
#正则匹配出减号(0/1)和数字,并提取第一个符合的字符串
a = re.findall(r'-?\d+', s)[0]
a = int(a)
print(a)
#数据溢出的判断
if a > 2**31-1:
a = 2**31-1
elif a < -2**31:
a = -2**31
else:
a = 0
print(a)
return a