判断一个整数是否是回文数,回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数
重点来了:不能将整数转为字符串
下面这个方法比较笨哈哈,但是也比较好理解吧~
class Solution:
def isPalindrome(self, x: int) -> bool:
num1 = x
num2 = 0
num3 = num1
if num1 < 0 : #如果输入为负数,肯定不是回文数
return False
if num1 < 10 and num1 >= 0 : #输入为个位数,肯定是回文数
return True
while(num2 != num3): #两数不等,就一直循环
num2 += num1 % 10 #加上输入值的个位数
num1 = int(num1 /10) #输入值舍弃最后一位数
if num2 == num3 : #如果相等,返回true,程序结束
return True
if num1 < 1 : #当num1小于1,表明已经处理到最后一位数还是不等,退出循环
break
num2 = num2 * 10 #将低位的数往前挪
return False #循环结束,返回False
> 题库来源:https://leetcode-cn.com/