def str2Int(s):
    l=list(s)
    if len(l)<=0:
        return 0
    flag=0
    sum=0
    dict_num={'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}
    dict_tag={'+':1,'-':-1}
    if not dict_tag.__contains__(l[0]) and not dict_num.__contains__(l[0]):
        return 0
    elif dict_tag.__contains__(l[0]):
        flag=dict_tag[l[0]]
    else:
        sum+=dict_num[l[0]]
    for i in range(1,len(l)):
        if l[i]<'0' or l[i]>'9':
            return 0
        else:
            sum=sum*10+dict_num[l[i]]
    if flag==-1:
        return -sum
    else:
        return sum

 方法二leetcode已提交代码:

def myAtoi( s):
        dict_num={'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}
        dict_flag={'+':1,'-':-1}
        s=s.strip()
        if len(s)==0 or (s[0] not in dict_num and s[0] not in dict_flag) :
            return 0
        sum,flag=0,1
        if s[0] in dict_flag:
            flag=dict_flag[s[0]]
        else:
            sum=dict_num[s[0]]
        for d in s[1:]:
            if d in dict_num:
                sum=sum*10+dict_num[d]
            else:
                break
        digit=sum*flag
        if digit >2**31-1:
            digit=2**31-1
        elif digit<-(2**31):
            digit=-(2**31)
        return digit

 

相关文章: