剑指:把字符串转换成整数

题目描述
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0

输入描述
输入一个字符串,包括数字字母符号,可以为空

输出描述
如果是合法的数值表达则返回该数字,否则返回0

示例1
输入
+2147483647
1a33
输出
2147483647
0

部分答案,比较巧妙

class Solution:
    def StrToInt(self, s):
        # write code here
        if s is '':
            return 0
        numlist = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
        res = 0
        label = 1
        first = s[0]
        if first == '+':
            label = 1
            s = s[1:]
        elif first == '-':
            label = -1
            s = s[1:]
        for string in s:
            if string not in numlist:
                return 0
            else:
                res = res * 10 + numlist.index(string)
        return label * res
发布了82 篇原创文章 · 获赞 82 · 访问量 24万+

猜你喜欢

转载自blog.csdn.net/uncle_ll/article/details/104183339