【Leetcode】之Palindrome Number

本文介绍了一种高效判断整数是否为回文的方法。通过不断取模和除以10的操作来反转整数,并与原整数进行比较。这种方法避免了额外空间的使用,适用于各种整数相关的数学问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述:

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

我的解题思路:

题目要求的是判断一个整数是不是回文整数,拿到题目之后就想起了之前做过的寻找最长回文子串的问题。但是整数不同于字符串,字符串的每一位读取非常方便,而整数则不同,这是由它们的存储方式不同所决定的。所以,不能采用回文子串的方案。

那么,针对这个问题,最简单的想法就是求解该整数的反转整数,判断其与原始整数是否相等即可。之前也做过反转整数的问题,当时还要考虑溢出的情况。但是针对本题,无需考虑溢出的情况,因为有溢出的肯定不是回文整数了,放任其溢出,这样溢出之后的反转整数为负,肯定跟原始整数不相等,也就不会影响判断。提交通过的程序如下:

class Solution {
public:
    bool isPalindrome(int x) {
        int res=0;
        int tmp=x;
        int flag=1;
        if(x<0)
        {   return 0;
        }
        while(tmp!=0)
        {
            res=res*10+tmp%10;
            tmp=tmp/10;
        }
        if(res==x)
            return 1;
        else
            return 0;
    }
};

对于一个整数,采用mod,%这两种运算符,可以每次得到整数的一位,
while(tmp!=0)
{
res=res*10+tmp%10;
tmp=tmp/10;
}
这种数学技巧适用于整数相关的数学问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值