class Solution:
"""
@param: str: A string
@return: An integer
"""
def atoi(self, str):
# write your code here #*********python2************
flag=0
for i in str:
if i<='9' and i>= '0' :
flag=1
break #检查str是否存在数字(如不存在一定不合法flag将等于0)
if flag==0:
return 0
b=0
for i in range(0,len(str)):
if str[i]<='9' and str[i]>= '0' :
b=i #找到第一个数字在str中的切片位置,赋值给b
if i>0 and str[i-1]=='-':
flag=-1 #确定第一个数字前一个字符(如果有的话 )是否为‘-’
if i>1 and str[i-2]=='+':
return 0 #确定‘-’前一个是否有‘+’,有及为不合法
break
n=str[b]
for i in range(b+1,len(str)):
if str[i]<='9' and str[i]>= '0' :
n=n+str[i] #把从第b开始的一段连续数字赋值给b
else :
break
n=int(n)*flag #将n转为数字(flag在这里代表正负)
if n> 2147483647:
n=2147483647
if n< -2147483648:
n=-2147483648 #是否大于32位
return n
lintcode 54. 转换字符串到整数
最新推荐文章于 2018-04-24 15:03:26 发布