题目链接
https://leetcode.cn/problems/palindrome-number/
题目描述
题解
解法一
取每一位比较,有一位不相等就不是
class Solution {
public boolean isPalindrome(int x) {
if (x < 0) {
return false;
}
// 计算数字一共有多少位
int numCount = 1;
while (x / numCount >= 10) {
numCount *= 10;
}
while (x > 0) {
// 取第一位
int first = x / numCount;
// 取最后一位
int last = x % 10;
// 如果第一位和最后一位不相等,直接返回false
if (first != last) return false;
// 去掉数字的首尾
x = (x % numCount) / 10;
// 数字的位数-2
numCount /= 100;
}
return true;
}
}
解法二
反着把数字算一遍,两个数字不一样就不是
class Solution {
public boolean isPalindrome(int x) {
if(x < 0)
return false;
int cur = 0;
int num = x;
while(num != 0) {
cur = cur * 10 + num % 10;
num /= 10;
}
return cur == x;
}
}