LeetCode #9 Easy

回文数

更新于:2026-01-27 在 LeetCode 上查看

题目描述

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

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

示例

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

我的解题过程

负数不可能是回文数,直接返回 false。 题目要求不将整数转换成字符串,因此采用“整数反转”的思路:将 x 反转得到 res,最后比较 res 与原值是否相等。

function isPalindrome(x: number): boolean {
  if (x < 0) return false;

  const deepX = x;

  let res = 0;

  while (x > 0) {
    res = res * 10 + (x % 10);
    x = Math.floor(x / 10);
  }

  return res === deepX;
}