题解 | #把字符串转换成整数(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