题目
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
注意
非法1:负数
非法2:末尾数为0
package Leetcode;
public class IsPalindrome {
public boolean Solve(int x) {
/*if(x<0||(x%10==0&&x!=0)) return false;
//法一:尾数取余法将倒序的数求出来判断是否相等
//法二:法一的基础上加一个条件判断,前半部分==后半部分则是回文数
//前半部分=x,后半部分等于reverse
//(注意点:偶位数和奇位数)
int reverse=0;
while(x>reverse){
reverse=reverse*10+x%10;
x/=10;
}
//x>=reverse
//此时要么前半部分和后半部分位数相等,要么后半部分位数多1
if(x==reverse||x==reverse/10) return true;
else return false; */
if(x<0||(x%10==0&&x!=0)) return false;
int reverse=0;
while(x!=0){
reverse=reverse*10+x%10;
x/=10;
}
if(x==reverse) return true;
else return false;
}
public static void main(String[] args) {
IsPalindrome isPalindrome=new IsPalindrome();
boolean t=isPalindrome.Solve(121);
System.out.println(t);
}
}