LeetCode 7. 整数反转

Posted 咸鱼の小窝

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 7. 整数反转相关的知识,希望对你有一定的参考价值。

题意

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

思路

  • 想法:保留符号直接翻转,注意防止爆int。时间复杂度(O(log_{10}(n)))
  • 吐槽:官方给的结果是如果爆了int则返回0。(是我眼了,题目中最下面的注意里写了。)

代码

class Solution {
public:
    int reverse(int x) {

        int revx = 0;
        while(x)
        {
            int add = x % 10;
            if(revx > INT_MAX / 10 || (revx == INT_MAX / 10 && add >  7))    return 0;
            if(revx < INT_MIN / 10 || (revx == INT_MIN / 10 && add < -8))    return 0;
            x /= 10;
            revx = revx * 10 + add;
        }
        return revx;
    }
};

总结

我爱水题。嗯。

以上是关于LeetCode 7. 整数反转的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 7. 整数反转

p66 反转整数 (leetcode 7)

7. 反转整数 [leetcode 7: Reverse Integer]

7. 反转整数 [leetcode 7: Reverse Integer]

LeetCode 7. 整数反转

前端与算法 leetcode 7. 整数反转