【LeetCode】9、回文数

9、回文数

题目:

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

回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

例如,121 是回文,而 123 不是。

示例 1:

输入:x = 121
输出:true

示例 2:

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

示例 3:

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

提示:

-2^31 <= x <= 2 ^31 - 1

进阶:你能不将整数转为字符串来解决这个问题吗?

解题思路:

题目中说,我们不能将整数转为字符串来解决这个问题,那我们可以用数学的方式来解决。

  • 首先如果是负数则一定不是回文数,直接返回 false;
  • 如果是正数,则将其倒序数值计算出来,然后比较和原数值是否相等
  • 如果是回文数则相等返回 true,如果不是则不相等 false
  • 比如 123 的倒序 321,不相等;121 的倒序 121,相等

参考代码:

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

整体来说,代码和思路都非常简单。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44427181/article/details/125405648