题目内容
将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。
题目思路
这道题目首先要判断开头是否是正负号,然后接下来判断整个字符串是否有违规字符。如果没有的话,叠加。其实可以考虑使用reduce函数进行叠加。
程序代码
# -*- coding:utf-8 -*-
class Solution:
def StrToInt(self, s):
# write code here
if not s:
return 0
flag=1
if s[0]=='+':
s=s[1:]
elif s[0]=='-':
s=s[1:]
flag=-1
for i in s:
if ord(i)<49 or ord(i)>57:
return 0
res=0
lgt=len(s)
for i in range(lgt):
res+=(10**(lgt-1-i))*int(s[i])
return res*flag