题解 | #把字符串转换成整数(atoi)#

把字符串转换成整数(atoi)

https://www.nowcoder.com/practice/d11471c3bf2d40f38b66bb12785df47f

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param s string字符串 
# @return int整型
# 屎山,全是边界
class Solution:
    def StrToInt(self , s: str) -> int:
        # write code here
        s = s.strip()
        i = 0
        n = len(s)
        if n == 0:
            return 0
        if n == 1:
            return eval(s) if s.isdigit() else 0
        else:
            if s[0] != "+" and s[0]!="-" and s[0].isalpha():
                return 0
            else:
                start = 0
                news = ""
                while s[start] == "+" or s[start] == "-" or s[start] == " ":
                    news = s[start]
                    start += 1
                    if start != 1:
                        return 0
                for i in range(start, n):
                    if s[i].isdigit():
                        news += s[i]
                    else:
                        break

                i,m = 0,len(news)
                if news[0] == "-":
                    i = 1
                while m > 1 and i < m-1:
                    if news[i] == '0':
                        i += 1
                    else:
                        break

                cur = -eval(news[i:]) if news[0] == "-" else eval(news[i:])
                if cur <= -2**32:
                    return -2147483648
                elif cur >= 2**31 - 1:
                    return 2147483647
                else:
                    return cur

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务