力扣刷题
bool isPalindrome(int x){
if (x < 0) { // 如果是负数,直接返回 false
return false;
}
long long reversed_num = 0; // 使用 long long 类型来保存反转后的数字
long long temp_x = x; // 临时变量保存 x 的值,防止改变 x
while (temp_x != 0) { // 反转数字
reversed_num = reversed_num * 10 + temp_x % 10;//将reversed_num的数字全部左移一位,为添加新的数字腾出位置。取temp_x的末位数字,即除以10的余数,加到reversed_num的末尾,完成一位数字的反转。
temp_x /= 10;//这行代码的作用就是去掉temp_x的末位数字
}
return reversed_num == x; // 判断是否回文数
}
1. 对于负数,一定不是回文数,返回false;
2. 反转数字,得到反转后的数字reversed_num;
3. 判断reversed_num是否等于x,如果相等则是回文数,反之则不是回文数。需要注意的是,在反转数字时要使用 long long 类型来保存反转的结果,防止反转后的数字溢出(int类型的最大值为2^31-1)。