美文网首页
[Leetcode][7][reverse integer][e

[Leetcode][7][reverse integer][e

作者: RainbowShine | 来源:发表于2018-10-15 14:22 被阅读0次

    题目描述:

    对于输入的一个整数,对它进行翻转操作。但是反转后的数字不能超过32-bit signed integer range: [−231, 231 − 1].

    解题思路:

    (有的解题思路复杂,但是多思考思考没有坏处~~)

    1. 用long long型来存储翻转后的数字,如果数字超过INT_MAX,则输出0,否则输出翻转后的数字。
    class Solution {
    public:
        int reverse(int x) {
            long long reverse = 0;
            bool ispositive = true;
            if (x < 0) {
                ispositive = false; // 判断输入数字的正负
                x *= -1;            // 变为正数
            }
            while (x > 0){    //翻转数字
                reverse = reverse * 10 + x % 10;
                x /= 10;
            }
            if (reverse > INT_MAX) return 0;
            if (ispositive)
                return reverse;
            else
                return -reverse;
        }
    };
    

    2.用字符数组存储读入的数字,判断长度和每一位的数字是否超过INT_MAX的每一位数字。

    相关文章

      网友评论

          本文标题:[Leetcode][7][reverse integer][e

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