LeetCode 8
2018-10-12 本文已影响0人
Junr_0926
LeetCode 8 String to Integer (atoi)
实现atoi
函数,将字符串转换为整数。该函数会忽略开始的空格,然后将后面的字符作为整数进行转换,不管正数还是负数,并且后面的多余的字符会被忽略。
发生溢出时只返回 INT_MAX or INT_MIN
如果第一个非空白字符不是数字序列,不转换。
如果不转换,那么返回0
思路
class Solution(object):
def myAtoi(self, str):
"""
:type str: str
:rtype: int
"""
str = str.strip()
if len(str) == 0 or (str[0] not in '+-' and not str[0].isdigit()):
return 0
if str[0] == '-':
sign = -1
str = str[1:]
elif str[0] == '+':
sign = 1
str = str[1:]
else:
sign = 1
ret = 0
for s in str:
if s.isdigit():
ret = ret * 10 + ord(s) - ord('0')
else:
break
return max(-2**31, min(sign * ret,2**31-1))
if __name__ == '__main__':
solver = Solution()
for i in ['42', ' -42', 'werw 12421', '214 asfas', '-32987546394424']:
print solver.myAtoi(i)