LeetCode9. 回文数

LeetCode9. 回文数:

题目描述:

给你一个整数 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

思路:

1.转换成字符串:翻转一下跟原来的做对比看是否一致

2.将数值进行翻转,对比是否一致

自己写的代码:

思路对了,但是做了很多冗余的判断,很慢,击败8.66%,hh

复制代码
class Solution {
public:
    bool isPalindrome(int x) {
        int res = 0;
        int temp = x;
        if(x < 0) return false;
        while(x)
        {
            if(res > (INT_MAX - x % 10) / 10) return false;
            res = res * 10 + x % 10;
            x /= 10;
        }
        printf("%d", res);
        if(res == temp) return true;
        else return false;
    }
};

转成字符串判断:

复制代码
class Solution {
public:
    bool isPalindrome(int x) {
        if(x < 0) return 0;
        string s = to_string(x);
        return s == string(s.rbegin(), s.rend());
    }
};

数值转换方法:

复制代码
class Solution {
public:
    bool isPalindrome(int x) {
        if(x < 0 ) return 0;
        int y = x;
        long long res = 0;
        while(x)
        {
            res = res * 10 + x % 10;
            x /= 10;
        }
        return res == y;
    }
};
相关推荐
薰衣草233310 分钟前
hot100练习-11
算法·leetcode
雾时之林27 分钟前
数据结构--------顺序表
数据结构
地平线开发者34 分钟前
征程 6 | 工具链如何支持 Matmul/Conv 双 int16 输入量化?
人工智能·算法·自动驾驶
甄心爱学习38 分钟前
数值计算-线性方程组的迭代解法
算法
stolentime1 小时前
SCP2025T2:P14254 分割(divide) 题解
算法·图论·组合计数·洛谷scp2025
Q741_1471 小时前
C++ 面试基础考点 模拟题 力扣 38. 外观数列 题解 每日一题
c++·算法·leetcode·面试·模拟
W_chuanqi1 小时前
RDEx:一种效果驱动的混合单目标优化器,自适应选择与融合多种算子与策略
人工智能·算法·机器学习·性能优化
L_09071 小时前
【Algorithm】二分查找算法
c++·算法·leetcode
靠近彗星2 小时前
3.3栈与队列的应用
数据结构·算法
while(1){yan}4 小时前
数据结构之链表
数据结构·链表