# 题目

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

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

例如,121 是回文,而 123 不是。

示例:

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

# 自己解题

略一思考,可以把数字转成字符串,从中间一分为二,再把右边的字符串倒序排列一下,对比即可

t
function isPalindrome(x: number): boolean {
    const str = x.toString();
    if(str.length == 1) return true;
    const l = Math.floor(str.length/2);
    return str.slice(0,l) == str.slice(-l).split("").reverse().join("");
};

提交测试,均测试通过,执行用时: 156 ms, 击败了 52% 的人,性能尚可.

# 学习解法

看了网友的一些解法,分享一个最简单的,也是我没有想到的,直接把数字转字符串进行返序对比即可

t
function isPalindrome(x: number): boolean {
    if(x < 0) return false;
    if(x < 10) return true;
    return Number(x.toString().split("").reverse().join("")) === x;
};

执行用时: 148 ms, 略快一点

请我喝杯[咖啡]~( ̄▽ ̄)~*

一个放羊娃 微信支付

微信支付

一个放羊娃 支付宝

支付宝