Datawhale-LeetCode集训打卡-第四天-字符串转换整数 (atoi)(String to Integer (atoi))
Solution
classSolution:defmyAtoi(self,str):"""
:type str: str
:rtype: int
"""
MAX_INT, MIN_INT =2**31-1,-2**31str=str.strip()if(strandstr[0]=='-'):
sign =-1else:
sign =1
i =0ifstrandstr[0]in['-','+']:
i +=1
r =[]while i <len(str):ifstr[i].isdigit():
r.append(int(str[i]))else:break
i +=1
num, base =0,1for i inrange((len(r)-1),-1,-1):if sign ==1and MAX_INT - base * r[i]<= num:return MAX_INT
if sign ==-1and MAX_INT +1- base * r[i]<= num:return MIN_INT
num += base * r[i]
base *=10return num * sign