给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
例如,121 是回文,而 123 不是。
来源:力扣(LeetCode)
class Solution {
public:
bool isPalindrome(int x) {
if(x<0||(x%10==0&&x!=0))
{
return false;
}
int revertedNum=0;
while(x>revertedNum)
{
revertedNum=revertedNum*10+x%10;
x/=10;
}
return x==revertedNum||x==revertedNum/10;
}
};
思路(来源于力扣官网):不用将所有的数字都反转,将所有的数字都反转会导致溢出。
所以利用while循环函数将数字的后半部分反转。然后将反转后的数字与原数字作比较。
最后一句return x直接等于反转数字是针对于偶数位数字,等于反转数字除10是针对奇数位数字