字节跳动,腾讯大厂面试专题——力扣(7)整数反转

题目解析

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

  • 首先我们知道题目给了我们一个整数,我们分析一下意思,系统想让我们将一个数反转过来,且反转过来的数值范围为[−2^31/, 2^31 − 1]。

解题思路

  • 首先我们可以创建一个数组,把传入的数字转换成字符串的形式,在转换成数组的形式存储起来。
  • 然后循环遍历这个数组,如果这个数传入进来的时候是负数,那我们就少遍历一次。把这些数倒序相加起来。最后将数组的第0项添加到最前面。反之,我们就全部遍历。
  • 之后我们就可以将这个数转换为数字类型,同时清除转换之后开始为0的情况。
  • 最后我们用3元运算判断这个数的范围。再将这个数返回即可。

完整代码

var reverse = function(x) {
            var new_arr = [];
            var str = "";
            new_arr = x.toString().split("");
            if(x<0){
                for(var i = new_arr.length-1 ; i>0 ; i--){
                    str += new_arr[i];
                }
                str = new_arr[0]+str;
            }else{
                for(var i = new_arr.length-1 ; i>-1 ; i--){
                    str += new_arr[i];
                }
            }
            str = parseInt(str);
            str = str > Math.pow(2,31)-1 || -Math.pow(2,31) > str ? 0 :str;
            return str;
};
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

友情链接更多精彩内容