判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
方法一 : 把数字转化为字符串,再遍历一半的字符串 , 一边遍历一边比较,当出现不一样的返回
def isPalindrome(x):
if x < 0 : return False
x = str(x)
l = len(x)
if l % 2 == 0:
ran = int(l / 2)
else:
ran = int((l - 1) / 2)
for i in range(ran):
if x[i] != x[l - 1 - i]:
return False
return True
方法二 : 把 数字的后半段切出来翻转,然后就和前半段比较,要先判定小于0等于0和只有一位数的数字
def isPalindrome2(x):
if (x < 0) | ((x % 10 == 0) & (x != 0)):
return False
r = 0
while x > r :
r = r * 10 + x % 10
x = int(x / 10)
return (x == r) or (x == int(r/10))
C++ 实现 方法二
bool isPalindrome(int x) {
if ((x < 0) || ((x % 10 == 0) & (x != 0))) {
return false;
}
int r = 0;
while (x > r) {
r = r * 10 + x % 10;
x = x / 10;
}
return (x == r) || (x == r / 10);
}