美文网首页
LeetCode 7

LeetCode 7

作者: Junr_0926 | 来源:发表于2018-10-11 21:22 被阅读0次

    7. Reverse Integer

    给定一个32bit的有符号整型,将它倒序输出

    • Example 1

    输入:123
    输出:321

    • Example 2

    输入:-123
    输出:-321

    • Example 3

    输入:120
    输出:21

    思路

    思路很简单,将输入每次除10,得到的商,作为结果的低位数字。问题是如何处理overflow,当overflow发生的时候,会导致最终结果逆向运算后和上一步的结果不一致。

    class Solution {
    public:
        int reverse(int x) {
            int res = 0;
            int tmp = 0;
            int carry = 0;
            while (x != 0) {
                carry = x % 10;
                tmp = res;
                res = res * 10 + carry;
                x = x / 10;
            }
    
            if ((res - carry) / 10 != tmp) return 0;
            return res;
        }
    };
    
    #include "7.cpp"
    #include <iostream>
    int main() {
        Solution solver;
        std::cout << solver.reverse(123) << std::endl;
        std::cout << solver.reverse(-123) << std::endl;
        std::cout << solver.reverse(120) << std::endl;
        getchar();
    }
    
    image.png

    相关文章

      网友评论

          本文标题:LeetCode 7

          本文链接:https://www.haomeiwen.com/subject/fzsiaftx.html