把字符串转换成整数 牛客网 剑指Offer
把字符串转换成整数 牛客网 剑指Offer
- 题目描述
- 将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。
- 输入描述:
- 输入一个字符串,包括数字字母符号,可以为空
- 输出描述:
- 如果是合法的数值表达则返回该数字,否则返回0
- 示例1
- 输入
- 复制
- +2147483647
- 1a33
- 输出
- 复制
- 2147483647
- 0
class Solution:
def StrToInt(self, s):
lt = list(s)
b = 1
s = 0
dict = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}
for i in range(len(lt)-1,-1,-1):
if i != 0:
v = dict.get(lt[i],-1)
if v > -1:
s += (v * b)
else:
return 0
b *= 10
else:
if lt[i] == '-':
s = 0 - s
elif lt[i] == '+':
pass
else:
v = dict.get(lt[i],-1)
if v > -1:
s += (v * b)
else:
return 0
return s