很无语的一道题,感觉很没有意义,个人认为他的这道题描述不清楚,他应该在下图红线框内标注1,2,3,4,5,6顺序执行,我个人理解这个算法只是说了一种规则
通过代码如下,写的有些乱
class Solution:
def myAtoi(self, s: str) -> int:
l_s = len(s)
_32bmin = -1
for i in range(31):
_32bmin*=2
_32bmax = -_32bmin - 1
mark = 0
s_list = list()
t = 0
while t < l_s:
if s[t] == '-' and len(s_list) == 0:
if mark != 0:
break
mark = -1
elif s[t] == '+' and len(s_list) == 0:
if mark !=0:
break
mark = 1
elif s[t] <= '9' and s[t] >= '0':
s_list.append(s[t])
else:
if s[t] == ' ' and len(s_list)==0 and mark == 0:
t+=1
continue
break
# if mark:
# break
# mark = 0
t+=1
if len(s_list) == 0:
return 0
else:
t = 1
result = 0
for i in s_list[::-1]:
result += (t*int(i))
t*=10
if result == 0:
return 0
else:
if mark == 1 or mark == 0:
if result > _32bmax:
return _32bmax
else:
return result
elif mark == -1:
if result*-1 < _32bmin:
return _32bmin
else:
return result*-1