1 题目:
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 1:
输入: 121
输出: true
示例 2:
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。
进阶:
你能不将整数转为字符串来解决这个问题吗?
2 MyCode:(基于python)
不采用转为字符串比较的方式。整数不同位的数字比较的算法十分简单,看下面思路和代码就能清晰理解。
实现函数:
def isPalindrome(x):
#思路:
#判断正负
#先通过字符串计算其长度len
#利用整数除以10的len次方是最高位的数,除10取余是个位数,然后比较是否相同
#相同,再依次判断其余位
flag = 0
if x<0 :
return False
else :
if x == 0 :
return True
else :
x_str = str(x)
length = len(x_str) #获取长度
i=length
j=1
for i in range(1,length//2+1): #前后对应位置的数字进行对比
if (x//pow(10,length-1))%10 != (x%pow(10,j))//pow(10,j-1) : #利用整数求每位数字的方式
flag=1
length=length-1
j=j+1
if flag == 0 :
return True
else :
return False