力扣9. 回文数

模拟

  • 思路:
    • 计算这位数的反序数值;
    • 然后比较与原数值是否相等;
cpp 复制代码
class Solution {
public:
    bool isPalindrome(int x) {
        if (x < 0) {
            return false;
        }
        
        if (x < 10) {
            return true;
        }
        
        long long int sum = 0;
        int tmp = x;
        while (tmp) {
            sum = sum * 10 + tmp % 10;
            tmp /= 10;
        }
        
        return (sum == x);
    }
};
  • 上述方法将数值的每一位都遍历了一次,可以根据回文的特性遍历到中间位置;
cpp 复制代码
class Solution {
public:
    bool isPalindrome(int x) {
        if ((x < 0) || (x % 10 == 0 && x != 0)) {
            return false;
        }

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

        return (x == rev) || (x == rev / 10);
    }
};
相关推荐
孤廖3 小时前
吃透 C++ 栈和队列:stack/queue/priority_queue 用法 + 模拟 + STL 标准实现对比
java·开发语言·数据结构·c++·人工智能·深度学习·算法
BanyeBirth4 小时前
C++动态规划——LIS(最长不下降子序列)
算法·动态规划
小龙报4 小时前
《算法通关指南---C++编程篇(3)》
开发语言·c++·算法·visualstudio·学习方法·visual studio
凤山老林4 小时前
排序算法:详解插入排序
java·开发语言·后端·算法·排序算法
知星小度S4 小时前
算法训练之多源BFS
算法·宽度优先
2201_758875445 小时前
LeetCode:19. 删除链表的倒数第 N 个结点
算法·leetcode·链表
Wenhao.5 小时前
LeetCode 合并K个升序链表
leetcode·链表·golang
代码不停5 小时前
Java前缀和算法题目练习
java·开发语言·算法
courniche5 小时前
分组密码常见结构简介
算法·密码学
涤生z5 小时前
list.
开发语言·数据结构·c++·学习·算法·list