b_lc_实现库函数篇(atoi、)
实现一个 atoi 函数,使其能将字符串转换成整数。
思路:先处理符号,再处理数字
class Solution:
def atoi(self , s ):
if not s: return 0
n,num,p,inf,ninf=len(s),0,0,(1<<31)-1,-(1<<31)
sign=1
while p<n and s[p]==' ': p+=1
if p>=n: return 0
if s[p]=='-': sign,p=-1,p+1
elif s[p]=='+': sign,p=1,p+1
elif not s[p].isdigit(): return 0
for i in range(p,n):
if s[i].isdigit(): num=num*10+int(s[i])
else: break
ans=sign*num
if sign<0: return ninf if ans<ninf else ans
return inf if ans>inf else ans