首页 > 代码库 > Palindrome Number(回文)

Palindrome Number(回文)

 1 public class Solution{
 2     public boolean isPalindrome(int x) {
 3         //int count=1;
 4         int count1=0;
 5         int count2=0;
 6         int []bs=new int[100];
 7        if (x<0){//当输入的值为负的时候,就不是回文了
 8            System.out.println("false");
 9                return false;
10        }
11         String s=String.valueOf(x);//将输入的int型x转为字符串型
12         int t =s.length();//求出字符串型的x的长度
13         if(x>0&&x<10){//当输入的值只有一位数一定是回文
14             System.out.println("true");
15             return true;
16         }
17       //这一步其实不太懂,经过反复的代码验证可以得出,输入的值的位数是有算上符号的
18         /*if(x>0)
19             t=t;
20         else t=t-1;
21         //所以当输入的值为负的时候需要减一。再次回顾发现既然只要负数就不是回文,那么这段代码就是累赘了
22         //System.out.println(t);
23         x=Math.abs(x);*/
24         if(x!=0){
25             for(int i =0;i<t;i++){
26                 bs[i]=x%10;
27                 x=(x-bs[i])/10;
28                 //count++;   //x的长度
29                 //System.out.println(bs[i]);
30             }
31         }
32         if(t%2!=0){//当x为奇数的时候
33             for(int j=0;j<t/2;j++){
34                 if(bs[(t/2-j-1)]==bs[(t/2+j+1)])
35                 {
36                     count1++;
37                     //System.out.println(count1);
38                 }
39                 else{
40                     System.out.println("false");
41                     return false;
42                     //System.exit(-1);//强制退出
43                 }
44              }
45         }
46       
47     
48         
49          if(t%2==0){
50             for(int j2=0;j2<t/2;j2++){
51                 if(bs[(t/2-j2-1)]==bs[(t/2+j2)]){
52                     count2++;
53                     
54                 }
55                 else{
56                     System.out.println("false");
57                     //System.exit(-1);
58                     return false; 
59                 }
60             }
61          }
62              //System.out.println(count2);
63             if((count2==t/2)||(count1==t/2)){
64                 System.out.println("true");
65                 return true;
66             }
67             else{       
68                 System.out.println("false");
69                 return false;
70             }
71       
72         
73         }
74         
75             
76        
77     }
78 
79 /*class a{
80     public static void main(String[] args){
81         // TODO Auto-generated method stub
82         Solution s = new Solution();
83         s.isPalindrome(1001);
84     }
85 }
86 这一段代码是为了验证添加的
87 */

 

 

Palindrome Number(回文)