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

LeetCode第九题—— Palindrome Number(判断回文数)

时间:2019-05-24 19:02:58      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:etc   bsp   0ms   from   eth   排除   部分   rmi   一半   

题目描述

Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward.

Example 1:

Input: 121
Output: true

Example 2:

Input: -121
Output: false
Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.

Example 3:

Input: 10
Output: false
Explanation: Reads 01 from right to left. Therefore it is not a palindrome.

My solution(10ms,36.5MB)

整形转换成字符型,然后进行颠倒转换

 

class Solution {
    public boolean isPalindrome(int x) {
        if(x<0){
            return false;
        }else{
            String a = x + "";
            String aReverse = new StringBuilder(a).reverse().toString();
            if(a.equals(aReverse)){
                return true;
            }else{return false;}
        }
    }
}

 

Other solution(6ms,35.1MB):

这个方法很神奇啊!Ψ( ̄∀ ̄)Ψ

先排除负数,然后把整数分成两个部分,x为前一半,rev为后一半,例:32499423

并且rev还是已经倒转过后的数字,即3249

最后比较一下两个是否相同

 


如果是奇数个数字,例:12321

则rev为123,x为12

然后比较123/10=1212是否相等

class Solution {
   public boolean isPalindrome(int x) {
        if (x<0 || (x!=0 && x%10==0)) return false;
        int rev = 0;
        while (x>rev){
            rev = rev*10 + x%10;
            x = x/10;
        }
        return (x==rev || x==rev/10);
    }
}

 

LeetCode第九题—— Palindrome Number(判断回文数)

标签:etc   bsp   0ms   from   eth   排除   部分   rmi   一半   

原文地址:https://www.cnblogs.com/mgblog/p/10919361.html

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