【题目】将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。
【思路】本题先建了一个只含数字和正负号的数组,对字符串逐个比对,如果第一个是+,最后答案就乘1,如果是-,最后结果就乘-1,有元素不在新建的数组里,返回0,逐个乘10和下一个数字相加。
弊端就是正负号出现在中间无法解决。
【代码】
class Solution:
def StrToInt(self, s):
# write code here
if not s:
return 0
label = 1
sum = 0
num = ['0','1','2','3','4','5','6','7','8','9','+','-']
for i in s:
if i in num:
if i == '+':
label = 1
continue
if i == '-':
label = - 1
continue
else:
sum = sum*10 + num.index(i)
else:
sum = 0
break
return sum*label