算法(TS):整数反转

给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。

示例 1:

输入:x = 123

输出:321

示例 2:

输入:x = -123

输出:-321

示例 3:

输入:x = 120

输出:21

示例 4:

输入:x = 0

输出:0

提示:

  • -231 <= x <= 231 - 1

解答一

将 x 转成字符串,再反转字符串

ini 复制代码
function reverse(x: number): number {
    const s = (x + '').split('')
    let low = s[0] === '-' ? 1 : 0
    let high = s.length - 1

    while(low < high) {
        const temp = s[low]
        s[low] = s[high]
        s[high] = temp
        low ++
        high --
    }
    const num = Number(s.join(''))
    if (num > Math.pow(2,31) || num < Math.pow(-2,31)-1) {
        return 0
    }
    return num
};

解答二

关键公式 result = result * 10 + x % 10,x = x / 10

sql 复制代码
function reverse(x: number): number {
    let result = 0
    while(x !== 0) {
        result = result * 10 + x % 10
        x = x > 0 ? Math.floor(x / 10) : Math.ceil(x / 10)
    }

    if (result > Math.pow(2,31) || result < Math.pow(-2,31)-1) {
        return 0
    }

    return result
};
相关推荐
做科研的周师兄3 小时前
中国土壤有机质数据集
人工智能·算法·机器学习·分类·数据挖掘
来深圳3 小时前
leetcode 739. 每日温度
java·算法·leetcode
yaoh.wang3 小时前
力扣(LeetCode) 104: 二叉树的最大深度 - 解法思路
python·程序人生·算法·leetcode·面试·职场和发展·跳槽
hetao17338374 小时前
2025-12-21~22 hetao1733837的刷题笔记
c++·笔记·算法
醒过来摸鱼4 小时前
递归三种分类方法
算法
炽烈小老头4 小时前
【每天学习一点算法 2025/12/22】将有序数组转换为二叉搜索树
学习·算法
jghhh015 小时前
POCS(凸集投影)算法解决部分k空间数据缺失导致吉布斯伪影
算法
罗湖老棍子5 小时前
最小函数值(minval)(信息学奥赛一本通- P1370)
数据结构·c++·算法··优先队列·
LYFlied5 小时前
【每日算法】LeetCode 4. 寻找两个正序数组的中位数
算法·leetcode·面试·职场和发展
长安er5 小时前
LeetCode 62/64/5/1143多维动态规划核心题型总结
算法·leetcode·mybatis·动态规划