判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
这题不难,主要解法很巧妙。
python:
class Solution(object):
def isPalindrome(self, x):
"""
:type x: int
:rtype: bool
"""
flag = True
if x < 0:
flag =False
return flag
else:
xStr = str(x)
n = len(xStr)
if n == 1:
return flag
else:
i = 0
if n % 2 == 0:
while(i<(n/2)):
if xStr[i] == xStr[n-1-i]:
i += 1
else:
flag = False
break
if n % 2 != 0:
while(i<((n-1)/2)):
if xStr[i] == xStr[n-1-i]:
i += 1
else:
flag = False
break
return flag
C++中,用int test{x}初始化比int test=x要慢很多。
class Solution {
public:
bool isPalindrome(int x) {
int test=x;
if(x<0){
return false;
}
int y = 0;
while(x){
y = y * 10 + (x % 10);
x /= 10;
}
if(y == test) return true;
else return false;
}
};