标签:
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 }
标签:
原文地址:http://www.cnblogs.com/criseRabbit/p/4179023.html