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
posted @ 2020-12-04 15:39  童年の波鞋  阅读(120)  评论(0编辑  收藏  举报