Implement atoi to convert a string to an integer.
Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yourself what are the possible input cases.
Notes: It is intended for this problem to be specified vaguely (ie, no given input specs). You are responsible to gather all the input requirements up front.
Python:
class Solution(object):
def myAtoi(self, str):
"""
:type str: str
:rtype: int
"""
if str=="":#判断字符串是否为空
return 0
res=0
str=str.strip();#删除字符串空格
if str[0] in "+-":#判断首位是否为+-符号
first=str[0]#用first记录符号
str=str[1:]#如果是,字符串前移一位
else:
first="+"
for i in range(len(str)):
if str[i].isdigit():#依次判断每一位是否为数字字符
res=10*res+(ord(str[i])-48)#如果是通过ascll码计算加入到数字中
else:
break
return min(res,2**31-1) if first=="+" else max(0-res,-2**31)#判断是否超界
atoi() 是把数字字符串转化成数字的函数,要求去掉空格,保留符号,输出除首位之外第二个非数字字符前的字符。