1.题目
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 1:
输入: 121
输出: true
示例 2:
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。
来源:力扣(LeetCode)
链接:回文数判断
2.分析
通过将输入的每个十进制位储存进数组,利用数组的特性,通过双指针法对其进行判断,直至两下标相等,或相邻下标的值相等
3.代码示例
public boolean isPalindrome(int x) {
int num = 0;
int t =x;
if (t<0){
return false;
}
while(t!=0){
t/=10;
num+=1;
}
int [] tmp = new int[num];
for (int i=0;i<=num;i++){
if (x==0){
break;
}
tmp[i]=x%10;
x/=10;
}
int b =num-1;
for (int a=0;a<num;a++){
if(((a+1)==b && tmp[a]==tmp[b])||a==b){
return true;
}else if (tmp[a]==tmp[b]){
b--;
continue;
}else{
return false;
}
}
return true;
}