资讯专栏INFORMATION COLUMN

[LeetCode] Palindrome Number

刘厚水 / 2545人阅读

摘要:逐位看官,这两种解法一看便知,小子便不多费唇舌了。字符数组比较法原数翻转比较法

Problem

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

click to show spoilers.

Some hints:
Could negative integers be palindromes? (ie, -1)
NO

If you are thinking of converting the integer to string, note the restriction of using extra space.

You could also try reversing an integer. However, if you have solved the problem "Reverse Integer", you know that the reversed integer might overflow. How would you handle such case?

There is a more generic way of solving this problem.

Note

逐位看官,这两种解法一看便知,小子便不多费唇舌了。

Solution 字符数组比较法
public class Solution {
    public boolean isPalindrome(int x) {
        if (x >= Integer.MAX_VALUE || x < 0) return false;
        int digit = 0, x2 = x;
        while (x2 != 0) {
            x2 /= 10;
            digit++;
        }
        int[] A = new int[digit];
        while (x != 0) {
            A[--digit] = x % 10;
            x /= 10;
        }
        int left = 0, right = A.length-1;
        while (left < right) {
            if (A[left++] != A[right--]) return false;
        }
        return true;
    }
}
原数翻转比较法
public class Solution {
    public boolean isPalindrome(int x) {
        if (x < 0) return false;
        long rvs = 0;
        int i = 0, org = x;
        while (x != 0) {
            i = x % 10;
            rvs = rvs * 10 + i;
            x /= 10;
        }
        return rvs == org;
    }
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/64784.html

相关文章

  • [LeetCode] 9. Palindrome Number

    Problem Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward. Example 1: Input: 121Output: trueExample 2: Input: -121Output: falseExplana...

    zhaochunqi 评论0 收藏0
  • LeetCode Easy】009 Palindrome Number

    摘要:比较简单的一道题目,用取模取余的方法求翻转后的整数和原来的整数进行比较就行不用完全翻转,翻转一半就可这已经是最快的方法了 Easy 009 Palindrome Number Description: Determine whether an integer is a palindrome. An integer is a palindrome when it reads the sa...

    big_cat 评论0 收藏0
  • [Leetcode] Palindrome Number 回文数

    摘要:首尾比较法复杂度时间空间,为所求的长度思路先求记为的长度根据长度制造掩码循环当当最高位等于最低位还有数字等待判断最高位通过掩码和整除取得,最低位通过取余取得判断过后更新掩码,删掉最高位,删掉最低位注意求长度的如何取得一个的最高位假设答设置一 Palindrome Number Determine whether an integer is a palindrome. Do this w...

    lixiang 评论0 收藏0
  • [Leetcode] Palindrome Number 回文数

    摘要:反转比较法复杂度时间空间思路回文数有一个特性,就是它反转后值是一样的。代码逐位比较法复杂度时间空间思路反转比较有可能会溢出,但我们遍历每一位的时候其实并不用保存上一位的信息,只要和当前对应位相等就行了。首先,负数是否算回文。 Palindrome Number Determine whether an integer is a palindrome. Do this witho...

    _Suqin 评论0 收藏0
  • javascript初探LeetCode之9.Palindrome Number

    摘要:题目分析这是上的第题,难度为,判断整型数字是否为回文串,需要注意两点负数都不是回文小于的非负整数都是回文这一题与第题类似,也可以有两种思路数组法和模十法。所以代码可以如下改进能被整除的非整数和负数,返回 题目 Determine whether an integer is a palindrome. Do this without extra space. 分析 这是leetcode上...

    icyfire 评论0 收藏0
  • leetcode 9 Palindrome Number

    摘要:有一点需要注意的是,负数不算作回文数。而第题当时的方法是,对整数取除的余数,即是当前整数的最后一位。那么它翻转后一半的数字之后,应该和前半段的数字相等,我们将采用这种思路进行解题。 题目详情 Determine whether an integer is a palindrome. Do this without extra space.题目要求我们在不占用额外空间的前提下,判断一个整...

    darkbug 评论0 收藏0

发表评论

0条评论

刘厚水

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<