LeetCode 9. 回文数

本文介绍了一种不使用辅助空间判断整数是否为回文数的方法。通过将整数反转并与原数对比,有效处理了溢出问题。

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

题目描述: 回文数

        判断一个整数是否是回文数。不能使用辅助空间。

        一些提示:

        负整数可以是回文数吗?(例如 -1)

        如果你打算把整数转为字符串,请注意不允许使用辅助空间的限制。

        你也可以考虑将数字颠倒。但是如果你已经解决了 “颠倒整数” 问题的话,就会注意到颠倒整数时可能会发生溢出。你怎么来解决这个问题呢?

解题思路:

        上篇颠倒整数里已经解决了溢出的问题,那么直接颠倒后比较就行了,若溢出,则不是回文数。

代码:

class Solution {
public:
    bool isPalindrome(int x) {
        int a[100], n= 0;
        if(x < 0) return false;
        int xx = x;
        while(x != 0) {
            a[n++] = x%10;
            x = x / 10;
        }
        int ans = 0,t = 0;
        for(int i = 0 ; i < n ; i ++) {
            t = ans;
            ans = t*10 + a[i];
            if(t != ans/10) return false;
        }
        if(ans == xx) return true;
        else    return false;
    }
};


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值