题目: 8. String to Integer (atoi)
此题目(将输入的字符串转换成整型数)需要注意的要点:
- 字符串前面的空格需要清除。例 ‘ -42 ad ’ -> ‘-42 ad’
- 数字前最多允许有一个‘+’或者是‘-’,否则的话返回0
- 数字中出现不是数字的字符时,停止转换。例:‘436 ab’,‘436 ’,‘436 34’,‘436-1’,‘436+1’,都判定为436
- 当转换出来的数字必须在 [-231,231-1] 范围内,如果越界的话,即数字大于最大值时返回INT_MAX(231-1),小于最小值时返回INT_MIN(-231)
Python 代码如下:
class Solution(object):
def myAtoi(self,str):
ls = str.strip()
sign = ''
temp = '0'
if len(ls) == 0:
return 0
if ls[0] in ['+','-']:
sign = ls[0]
ls = ls[1:]
for i in ls:
if i.isdigit():
temp += i
else:
break
digit = int(sign + temp)
int_max = 2**31-1
int_min = -pow(2,31)
if digit > int_max > 0:
return int_max
elif digit < int_min <0:
return int_min
else:
return digit
测试代码:
print(Solution().myAtoi("4193 with words"))
此题目的理解含义借鉴博客: https://blog.youkuaiyun.com/hujingshuang/article/details/51188004