Leetcode Palindrome Number

Determine whether an integer is a palindrome. Do this without extra space.

对于这道题不能用额外的空间,即不能用一个数组来保存各个位数,因此对于这种问题可以采用判断两头数字的方法

 1 package Palindrome.Number;
 2 
 3 public class PalindromeNumber {
 4 
 5     /**
 6      * @param args
 7      */
 8     public static void main(String[] args) {
 9         // TODO Auto-generated method stub
10       int a=33333;
11       int i=10000;
12       int head=a/i;
13     //  System.out.println(1230%10);
14    // System.out.println(head);
15       boolean f=isPalindrome(2112);
16       System.out.println(f);
17     }
18     public static boolean isPalindrome(int x) {
19         //首先获取该整数的位数
20         int i=1;
21         int j=1;
22         if(x<0)
23             return false;
24         if(x<10)
25             return true;
26         while(x/i>=10){
27             i*=10;
28             j++;
29         }
30         //判断两头
31         int k=10;
32         int x1=x;
33         int x2=x;
34         boolean flag=true;
35         for(int h=0;h<j;h++){
36             int left=x1/i;
37             int right=x2%k;
38             if(right!=left)
39             {
40                 flag=false;
41                 break;
42                 }
43             x1=x1-left*i;
44             x2=x2/k;
45             k=1*10;
46             i=i/10;
47         }
48         return flag;
49     }
50 }

 

posted on 2014-12-22 21:26  Chris兔的小佳佳  阅读(108)  评论(0)    收藏  举报