给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。
class Solution {
/**
* 首先明确 /是取整(即商的整数) %是取余(左边小于右边,结果为左边,左边大于右边,结果为余数)
* 思路: 1.假设为4位数 x/1000的结果为千位数字 x%10的结果为个位数字 比较千位数与个位数是否相等
* 2.取出中间数字 继续循环比较
*
* @param x 入参
* @return 是否为回文数
*/
public boolean isPalindrome(int x) {
if (x < 0) {
return false;
}
//首先确定 对x取整的数字
int target = 1;
while (x / target >= 10) {
target *= 10;
}
//循环左右各取一个数字进行比较
while (x > 0) {
//获取左边的数字
int left = x / target;
int right = x % 10;
if (left != right) {
return false;
}
//将x的最左侧和最右侧的数字去掉
x = (x % target) / 10;
//去掉两位数字 所以target需要除以100
target /= 100;
}
return true;
}
}