9. 回文数(leetcode力扣算法 - java / rust)

Posted 二当家的白帽子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了9. 回文数(leetcode力扣算法 - java / rust)相关的知识,希望对你有一定的参考价值。

9. 回文数:

给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。

回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。

样例 1:

输入:
	x = 121
输出:
	true

样例 2:

输入:
	x = -121
输出:
	false
解释:
	从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。

样例 3:

输入:
	x = 10
输出:
	false
解释:
	从右向左读, 为 01 。因此它不是一个回文数。

样例 4:

输入:
	x = -101
输出:
	false

提示:

  • -231 <= x <= 231 - 1

原题传送门



题解

java

class Solution {
    public boolean isPalindrome(int x) {
        // 特殊情况:
        // 如上所述,当 x < 0 时,x 不是回文数。
        // 同样地,如果数字的最后一位是 0,为了使该数字为回文,
        // 则其第一位数字也应该是 0
        // 只有 0 满足这一属性
        if (x < 0 || (x % 10 == 0 && x != 0)) {
            return false;
        }

        int revertedNumber = 0;
        while (x > revertedNumber) {
            revertedNumber = revertedNumber * 10 + x % 10;
            x /= 10;
        }

        // 当数字长度为奇数时,我们可以通过 revertedNumber/10 去除处于中位的数字。
        // 例如,当输入为 12321 时,在 while 循环的末尾我们可以得到 x = 12,revertedNumber = 123,
        // 由于处于中位的数字不影响回文(它总是与自己相等),所以我们可以简单地将其去除。
        return x == revertedNumber || x == revertedNumber / 10;
    }
}

rust

impl Solution {
    pub fn is_palindrome(x: i32) -> bool {
        // 特殊情况:
        // 如上所述,当 x < 0 时,x 不是回文数。
        // 同样地,如果数字的最后一位是 0,为了使该数字为回文,
        // 则其第一位数字也应该是 0
        // 只有 0 满足这一属性
        if x < 0 || (x % 10 == 0 && x != 0) {
            return false;
        }
        
        let mut x = x;

        let mut reverted_number = 0;
        while (x > reverted_number) {
            reverted_number = reverted_number * 10 + x % 10;
            x /= 10;
        }

        // 当数字长度为奇数时,我们可以通过 revertedNumber/10 去除处于中位的数字。
        // 例如,当输入为 12321 时,在 while 循环的末尾我们可以得到 x = 12,revertedNumber = 123,
        // 由于处于中位的数字不影响回文(它总是与自己相等),所以我们可以简单地将其去除。
        x == reverted_number || x == reverted_number / 10
    }
}

最后说两句

非常感谢你阅读本文章,如果你觉得本文对你有所帮助,请留下你的足迹,点个赞,留个言,多谢~

作者水平有限,如果文章内容有不准确的地方,请指正。

希望小伙伴们都能每天进步一点点。

本文由 二当家的白帽子 https://le-yi.blog.csdn.net/ 博客原创,转载请注明来源,谢谢~

以上是关于9. 回文数(leetcode力扣算法 - java / rust)的主要内容,如果未能解决你的问题,请参考以下文章

leetcode 9 回文数

LeetCode-9回文数

9. 回文数

leetcode-9

LeetCode 9. 回文数 [Palindrome Number (Easy)]

LeetCode 9. 回文数 [Palindrome Number (Easy)]