09 回文数
目录
题目
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
- 例如,
121是回文,而123不是。
分析
这个题目非常简单,与之前的整数反转一样,不过区别在于可以使用64位整数存储,因此可以保证的反转的安全性,整体的逻辑与整数翻转一致;流程分析:
- 如果是负数,直接返回false;因为-121反转过来时121-,必然是不相等的;
- 定义变量res,是用来将已经翻转的数进行组合的,temp是用来计算小数位置的,x_copy是为了避免在x的位置上进行改动;
- 执行while循环;
- 计算余数
- 更新目前得到值
- 去掉x_copy已经计算过的余数的部分
- 返回反转后的结果是否等于初始数;
class Solution {
public boolean isPalindrome(int x) {
if(x<0) //如果是负数直接返回结果
return false;
long res = 0;
int temp = 0;
int x_copy = x;
while(x_copy!=0){
temp = x_copy % 10;
res = res * 10 + temp;
x_copy = x_copy/10;
}
return res == x;
}
}