码迷,mamicode.com
首页 > 其他好文 > 详细

Leetcode: Palindrome Numbers

时间:2014-05-06 10:39:40      阅读:241      评论:0      收藏:0      [点我收藏+]

标签:style   blog   class   code   java   color   

尝试用两头分别比较的方法,结果发现无法解决1000021这种问题

bubuko.com,布布扣
 1 public class Solution {
 2     public boolean isPalindrome(int x) {
 3         if(x<0) return false;
 4         int lastbit=x%10;
 5         int firstbit;
 6         int num=x;
 7         int bits=0;
 8         while(num/10!=0){
 9             num=num/10;
10             bits++;
11         }
12         firstbit=num;
13         if(firstbit!=lastbit) return false;
14         else{
15             x=x-firstbit*((int)(Math.pow(10,bits)));
16             x=x/10;
17             if(x==0) return true;
18             else return isPalindrome(x);
19         }
20     }
21 }
bubuko.com,布布扣

查看了论坛的解答,看到一个很好的solution, 它怎么想到13行的 div/=100的,给跪了,这样刚好解决了中间有0的问题,比如1021会被判定为false, 而121会被判定为true。 解答详见:http://leetcode.com/2012/01/palindrome-number.html

bubuko.com,布布扣
 1 public class Solution {
 2     public boolean isPalindrome(int x) {
 3         if (x < 0) return false;
 4         int div = 1;
 5         while (x / div >= 10) {
 6             div *= 10;
 7         }        
 8         while (x != 0) {
 9             int l = x / div;
10             int r = x % 10;
11             if (l != r) return false;
12             x = (x % div) / 10;
13             div /= 100;
14         }
15         return true;
16     }
17 }

bubuko.com,布布扣

Leetcode: Palindrome Numbers,布布扣,bubuko.com

Leetcode: Palindrome Numbers

标签:style   blog   class   code   java   color   

原文地址:http://www.cnblogs.com/EdwardLiu/p/3710668.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!