Palindrome Number
class Solution {
public:
bool isPalindrome(int x) {
if (x < 0 || (x != 0 && x % 10 == 0))
return false;
int y = 0;
while (x > y) {
y = y * 10 + x % 10;
x = x / 10;
}
return (x == y) || (x == y/10);
}
};
- 先判断x是否为0,或个位数是否为0(若个位数为0,不存在转置),此两种定不是回文。
- 声明变量y,初始化为0,用来保存x的转置。
- 使用while循环,当x <= y时,跳出循环。
- 求x的个位数,将y赋值为y*10+x%10即为x后两位的转置;不断重复此步骤。
- 当循环结束时判断x与y是否相等或者x为y/10。若成立返回true,否则x不是回文。