前言
前两天忙着处理其他事情,就单纯看了看算法题,并没有发出来给大家分享,然后现在是打算先刷力扣的简单题,那么今天给广大粉丝带来的是力扣第7题的解题思路和代码,希望大家支持…
题目描述
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过32位的有符号整数的范围[-22147483648,2147483647] ,就返回 0。
示例 1:
输入:x = 123
输出:321
示例 2:
输入:x = -123
输出:-321
示例 3:
输入:x = 120
输出:21
解题思路:将x从Number对象转成String对象,用String对象的方法split将String分割成Array,然后用Array对象的reverse方法进行翻转,再用Array对象的join方法将Array转成String,最后将String变回Number。然后判断是否为负号 进行位运算取负号+1 如果超出范围返回0
coding:
/**
* @param {number} x
* @return {number}
*/
var reverse = function(x) {
var str = x.toString()
let arr = str.split('') // 数组
// 判断是否有负号
if(arr[0] !== '-'){
let num = Number(arr.reverse().join(''))
if(num <= 2147483647 && num >= -22147483648){
return num
} else {
return 0
}
} else if(arr[0] === '-'){
delete arr[0]
let num = Number(arr.reverse().join(''))
if(num <= 2147483647 && num >= -22147483648){
return ~num+1
} else {
return 0
}
}
};
// 时间复杂度O(n)
// 空间复杂度O(n)
复制代码
代码精简:
var reverse = function (x) {
let y = parseInt(x.toString().split("").reverse().join(""));
if (x < 0)
y = - y;
return y > 2147483647 || y < -2147483648 ? 0 : y;
};
复制代码
总结
刷题打卡第六天,选择力扣第7题,学习了反转整数,一起加油哇~
❤️ 感谢大家
如果你觉得这篇内容对你挺有有帮助的话:
点赞支持下吧,让更多的人也能看到这篇内容(收藏不点赞,都是耍流氓 -_-)关注公众号给npy的前端秘籍,我们一起学习一起进步。
觉得不错的话,也可以阅读其他文章(感谢朋友的鼓励与支持???)
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END