算法(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
};
相关推荐
贾斯汀玛尔斯1 分钟前
每天学一个算法-- 归并排序(Merge Sort)
数据结构·算法·排序算法
算法鑫探2 分钟前
算法中的二分法(二分查找)详解及示例
c语言·数据结构·算法·新人首发
叶子野格14 分钟前
《C语言学习:编程例题》8
c语言·开发语言·c++·学习·算法·visual studio
澈20715 分钟前
排序算法入门:冒泡、选择、插入排序详解
数据结构·算法·排序算法
smj2302_7968265219 分钟前
解决leetcode第3901题好子序列查询
python·算法·leetcode
_深海凉_21 分钟前
LeetCode热题100-每日温度
算法·leetcode·职场和发展
迷你可可小生24 分钟前
面经学习(二)
学习·算法
John.Lewis25 分钟前
C++加餐课-二叉树:进阶算法
数据结构·c++·算法
郝学胜-神的一滴33 分钟前
ReLU激活函数全解析:从原理到实战,解锁深度学习核心激活单元
人工智能·pytorch·python·深度学习·算法
AGV算法笔记38 分钟前
最新感知算法论文分析:RaCFormer 如何提升雷达相机 3D 目标检测性能?
数码相机·算法·3d·自动驾驶·机器人视觉·3d目标检测·感知算法