class Solution:
def reverse(self, x: int) -> int:
i = 1
if x < 0:
i = -1
x = -x
mid = 0
while x > 0:
mid = mid * 10 + x % 10
x //= 10
if mid < -(1 << 31) or mid > ((1 << 31) - 1) :
return 0
return i * mid
LeetCode第8题: 字符串转换整数
使用strip()去掉空格, 如果是空字符返回0
使用分支结构逐层判断即可
classSolution:defmyAtoi(self, s:str)->int:
s = s.strip()if s =="":return0
k =0
flag =0if s[0]in{'+','-','0','1','2','3','4','5','6','7','8','9'}:if s[0]>='0'and s[0]<='9':
k =1else:
k =1
flag =1for i inrange(1,len(s)):if(s[i]>='0'and s[i]<='9')or s[i]=='.':
k +=1else:break;if(k <=0)or(flag ==1and k <=1):return0
i =int(float(s[0:k]))if i <-(1<<31):return-(1<<31)if i >((1<<31)-1):return((1<<31)-1)return i
LeetCode第9题: 回文数
如果是负数直接返回False
如果是正数, 反转比较即可
classSolution:defisPalindrome(self, x:int)->bool:if x <0:returnFalsereturnint(str(x)[::-1])== x
LeetCode第7题: 整数反转本题比较简单, 利用地板除和取模即可得出, 最后需要判断是否溢出class Solution: def reverse(self, x: int) -> int: i = 1 if x < 0: i = -1 x = -x mid = 0 while x > 0: mid = mid * 10 + x %