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