【LeetCode with JavaScript】7.Reverse Integer

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zwkkkk1/article/details/80430533

原题网址:https://leetcode.com/problems/reverse-integer/
难度:Easy

题目

给定一个 32 位有符号整数,将整数中的数字进行反转。

Example 1:

Input: 123
Output: 321

Example 2:

Input: -123
Output: -321

Example 3:

Input: 120
Output: 21

Note:

假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−2^31, 2^31 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。

思路


对 input 进行循环处理,便于理解此处取 Example1 进行解析:
1. 循环1(x = 123),x % 10 = 3,得到余数3,x = (123 - 3) / 10 = 12,反转结果 num = num * 10 + 余数3 = 3;
2. 循环2(x = 12),x % 10 = 2,得到余数2,x = (12 - 2) / 10 = 1,反转结果 num = num * 10 + 余数2 = 32;
3. 循环3(x = 1),x % 10 = 1,得到余数1,x = (1 - 1) / 10 = 0,反转结果 num = num * 10 + 余数1 = 321;
4. x = 0 退出循环,对反转结果进行区间判定,需符合 [−231, 231 − 1],通过返回结果 num,不通过返回 0。

/**
 * @param {number} x
 * @return {number}
 */
var reverse = function(x) {
    var num = 0, digit = 0;
    while(x != 0) {
        digit = x % 10;
        x = (x - digit) / 10;
        num = num * 10 + digit;
    }

    if (num >= 2147483647 || num <= -2147483647) {
        return 0;
    }

    return num;
};

Your runtime beats 96.47 % of javascript submissions
运行时间:76ms,clear!

猜你喜欢

转载自blog.csdn.net/zwkkkk1/article/details/80430533
今日推荐