
LeetCode7.整数反转 JavaScript
转换为字符串:首先将整数转换为字符串形式,便于处理每一位数字。 处理符号:检查整数是否为负数或正数。如果为负数,将负号单独记录,处理剩余的数字。 反转数字部分:将数字字符反转,注意去掉前导零(如反转120后的021去掉前导零,得到21)。 重新拼接符号:将符号添加到反转后的数字前面,形成结果字符串。 检查溢出情况:根据32位有符号整数的范围判断反转后的结果是否溢出。如果溢出,返回0;否则,返回反转后的数值。 特殊情况处理:如果输入为0,直接返回0。 转换字符串:将整数转换为字符串以便处理。 处理符号:检查是否为负数,存储符号,处理数字部分。 反转数字:将数字反转并转换回字符串。 去除前导零:去除反转后的前导零,确保结果正确。 重新拼接符号:将符号添加到反转后的数字前面,形成结果字符串。 检查溢出:根据32位有符号整数范围检查结果,如果溢出则返回0。
发布日期:2025-04-05 03:35:54
浏览次数:10
分类:精选文章
本文共 1273 字,大约阅读时间需要 4 分钟。
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例:
输入 123,输出 321;输入 -123,输出 -321;输入 120,输出 21。
本文将详细介绍如何实现这一功能,并对代码进行优化。
方法思路
要实现整数反转,可以按照以下步骤操作:
代码实现
function reverseNumber(x) { if (x === 0) return 0; // 特殊情况返回0 const str = x.toString(); const isNegative = str[0] === '-'; let digits = ''; // 如果是负数,取绝对值部分处理 if (isNegative) { digits = str.slice(1); } else { digits = str; } // 把数字反转 const reversed = digits.split('').reverse().join(''); // 去除前导零,若是单零则留一个 let processed = reversed.replace(/^0+/g, ''); processed = processed === '' ? '0' : processed; const resultStr = isNegative ? `-${processed}` : processed; const num = parseInt(resultStr, 10); // 检查是否溢出 if (num > Math.pow(2, 31) - 1 || num < Math.pow(-2, 31)) { return 0; } return num;}
代码解析
总结
通过上述步骤和代码,我们可以正确地将给定的32位整数反转。如果反转后的结果溢出范围,则返回0。这种方法有效地处理了正负整数和前导零问题,确保结果的准确性。
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年04月27日 00时05分01秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
leetcode380. Insert Delete GetRandom O(1)
2023-01-31
LeetCode502
2023-01-31
leetcode507
2023-01-31
LeetCode7.整数反转 JavaScript
2023-01-31
Leetcode: Group Anagrams
2023-01-31
Leetcode: Spiral Matrix II
2023-01-31
LeetCode: String to Integer (atoi)
2023-01-31
Leetcode:454. 4Sum II
2023-01-31
LeetCode:Restore IP Addresses
2023-01-31
LeetCode:Subsets I II
2023-01-31
LeetCode——Unique Paths
2023-01-31
LeetCode二叉树从上至下路径问题总结(112.113.437.129)
2023-01-31
LeetCode动态规划训练营(1~5天)
2023-01-31
LeetCode哈希表+字符类的题目总结
2023-01-31
LeetCode商汤专场——第216场周赛题解
2023-01-31
LeetCode地平线专场——第308场周赛题解
2023-01-31