美文网首页
LeetCode-回文数

LeetCode-回文数

作者: 沙漠小舟 | 来源:发表于2020-03-31 22:38 被阅读0次

题目链接 => 戳这里

题目截图

解析

我们从题目中就可以知道如果输入的整数是负数,那么这个数就一定不是回文数,那么还有没有其他特例情况呢?我们考虑一下结尾是0的数,如果这个数不是0,而是10,20这种,那么也一定不是回文数。那么正常情况下如何判断一个整数是否为回文数呢?
1.反转整个整数,通过 x % 10的方式,我们每次可以拿到x最后一位的数,然后通过x = x / 10的方式去除最后一位,例如:

x = 123; revertNum = 0;
设置一个中间值temp = x
第一次:revertNum = revertNum * 10 + temp % 10 => 3, temp= temp/ 10 => 12;
第二次:revertNum = revertNum * 10 + temp % 10 => 32, temp= temp/10 => 1;
第三次:revertNum = revertNum * 10 + temp % 10 => 321, temp = temp /10 => 0;
终止条件是 temp <= 0;

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

为什么要用temo中间值呢?因为我们需要用最初的x值来和反转后的值进行比较,看是否相等;
2.其实一个回文数,我们只需要反转它的一半数就可以知道它是不是回文数了;

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

相关文章

  • LeetCode-回文数

    题目链接 => 戳这里 解析 我们从题目中就可以知道如果输入的整数是负数,那么这个数就一定不是回文数,那么还有没有...

  • 回文数最优解

    回文数 非回文数 JAVA 解法

  • 【leetcode-动态规划】最长回文子串

    【leetcode-动态规划】最长回文子串 题目: 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s...

  • leecode刷题(31) -- 回文数

    leecode刷题(31) -- 回文数 回文数 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右...

  • Leetcode(9) - 回文数 - java版

    Leetcode(9) - 回文数 - java版 题目 难度: 简单 判断一个整数是否是回文数。回文数是指正序...

  • LeetCode-回文对

    自己写的最容易理解的方法,超时了。呜呜,但是不知道怎么优化。 别人写的的前缀树的方法,自己看了好几个小时,没看懂,...

  • leetcode-回文链表

    请判断一个链表是否为回文链表。 示例 1: 示例 2: 进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂...

  • ARTS-Week3 回文数、内存泄漏排查、DWR框架

    Algorithm:回文数判断 LeetCode原题链接 题目: 判断一个整数是否是回文数。回文数是指正序(从左向...

  • java笔试题(一)

    1.回文数Palindrome Number 判断一个整数是佛是回文数,回文数是指正序(从左到右)和倒序(从右到左...

  • LeetCode(PHP)之回文数

    题目:回文数(Palindrome Number) 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从...

网友评论

      本文标题:LeetCode-回文数

      本文链接:https://www.haomeiwen.com/subject/jicnuhtx.html