题目描述;将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
思路:先处理第一位的符号,记录正负,再处理接下来所有位,每位若不在0-9之间则返回0即可。
# -*- coding:utf-8 -*-
class Solution:
def StrToInt(self, s):
if(len(s) <= 0):
return 0
ans = 0
sig = 1
if(s[0] == '-'):
sig = -1
elif(s[0] == '+'):
sig = 1
elif('0' <= s[0] and s[0] <= '9'):
ans = int(s[0])
else:
return 0
for i in s[1:]:
# tmp = ord(i)-ord(0)
tmp = i
if('0' <= tmp and tmp <= '9'):
ans = ans*10 + int(tmp)
else:
return 0
return ans*sig
if __name__ == '__main__':
t = Solution()
string = '--'
print(t.StrToInt(string))