输入一个数字判断是不是回文数
算法分析:
1、负数不可能是回文数。
2、可以被10整除的数不可能是回文数
3、将数字转换成字符串,再将字符串转换成字符数组
4、将字符数组分成两半,进行对比。
实例:12321
因为数字的个数是奇数,前面的数组下标从0开始,后面的数组下标从数组长度开始,所以当比较完成后需要再比较前面的数组下标加一是不是大于等于后面的数组下标
package test;
class Solution1 {
boolean b;
public boolean isPalindrome(int x) {
if((x<0)||(x%10==0&&x>0)){
b=false;
}else {
String s=String.valueOf(x);
char[] s1=s.toCharArray();
int i,j=s1.length;
for( i=0;i<s1.length/2;++i) {
if(s1[i]==s1[j-1]) {
--j;
}else {
b=false;
break;
}
}
if(i+1>=j){//如果是回文数,那么前后相等的数字的个数相等或前面大于后面
b=true;
}
}
return b;
}
}
public class 回文数01 {
public static void main(String[] args) {
Solution1 sl=new Solution1();
System.out.println(sl.isPalindrome(10022201));
}
}