JZ49:把字符串转换成整数

题目描述:

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

解法:

(1)由于字符串中若出现字符,只能是+-字符,且只能在第一个字符出现,因此先判断第一个字符是不是+-(如果字符串长度为1且第一个字符是+-,返回0);
(2)对于其余字符,如果其中出现字符0到字符9以外的字符,返回0。如果在09之间,用ord()函数将其转换为ASCII码,减去48,就是整型数字了。

代码:

class Solution:
    def StrToInt(self, s):
        if not s:
            return 0
        rev = 1
        if s == '+' or s == '-':
            return 0
        elif s[0] == '+':
            s = s[1:]
        elif s[0] == '-':
            s = s[1:]
            rev = -1
        if s[0] == '0':
            return 0
        ans = 0
        wei = 1
        for i in range(len(s)-1, -1, -1):
            c = s[i]
            if c < '0' or c > '9':
                return 0
            else:
                ans += (ord(c)-48)*wei
                wei *= 10
        return rev*ans
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。