编程思路:首先清除首尾空格,然后巧妙使用异常except,当字符不能转换成整数时,则进入except,Python实现代码如下:
class Solution:
# @return an integer
def atoi(self, str):
# 首先清除首尾空格
str = str.strip()
# 如果是空
if str == '':
return 0
try:
if str[0] == '+' or str[0] == '-':
result = str[0]
else:
# 如果第一个字符不能转换成整数,则进入except
first = int(str[0])
result = str[0]
for i in range(1, len(str)):
try:
# 如果不能转换成整数,则进入except
value = int(str[i])
result = result + str[i]
except:
if result[0] == '-':
result_int = int(result[1:]) * (-1)
elif result[0] == '+':
result_int = int(result[1:])
else:
result_int = int(result)
if result_int >= math.pow(2, 31):
return int(math.pow(2, 31)-1)
if result_int < math.pow(2, 31) * (-1):
return int(math.pow(2, 31) * (-1))
return result_int
if result[0] == '-':
result_int = int(result[1:]) * (-1)
elif result[0] == '+':
result_int = int(result[1:])
else:
result_int = int(result)
if result_int >= math.pow(2, 31):
return int(math.pow(2, 31)-1)
if result_int < math.pow(2, 31) * (-1):
return int(math.pow(2, 31) * (-1))
return result_int
except:
return 0