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

Leetcode9 Palindromic Number

时间:2018-11-19 15:08:01      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:reverse   har   比较   ++   pre   eof   origin   valueof   return   

这道题比较简单,首先的思路肯定是得到一个数组,追求简单就使用了java的API,将之转化为char数组了。

class Solution {
    public boolean isPalindrome(int x) {
        if (x<0) return false;
        char[] nums = String.valueOf(x).toCharArray();
        for(int i=0;i<nums.length/2;i++) {
            if(nums[i]!=nums[nums.length-i-1]) return false;
        }
        return true;
    }
}

117ms,67.12%。

如果用自己写的循环可能会更快。但是有个问题,如果想得到转换后的int数组,我们需要先循环一遍,以得到int的位数,然后再循环一遍对比是否回文。

然后,这个数字如果回文,那么把他reverse了也依然是原数字,于是,就可以不先循环,直接得到reverse后的数字数组然后对比判断即可。

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

79ms。

 

Leetcode9 Palindromic Number

标签:reverse   har   比较   ++   pre   eof   origin   valueof   return   

原文地址:https://www.cnblogs.com/chason95/p/9983089.html

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