美文网首页
LeeCode 7.整数反转

LeeCode 7.整数反转

作者: 饼干不干 | 来源:发表于2019-04-30 19:09 被阅读0次

    给出一个 32 位的有符号整数,将这个整数中每位上的数字进行反转。
    示例 1:
    输入: 123
    输出: 321
    示例 2:
    输入: -123
    输出: -321
    示例 3:
    输入: 120
    输出: 21
    注意:
    假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。如果反转后整数溢出那么就返回 0。

    思路分析

    依次取出整数的每一位数字给temp,再通过x/10使得数字依次减小十倍,通过result计算其反转后的数字。

    C

    int reverse(int x) {
       long int num = 0;
       while(x) {
            int res = x%10;
            x = x/10;
            num = num*10 +res;
        }
        int min = -2147483648;
        int max = 2147483647;
        if(num >=min && num <=max) {
            return num;
        }else {
            return 0;
        }
    }
    

    C++

    class Solution {
    public:
        int reverse(int x) {
            string s = to_string(x);
            if(s[0] == '-')
                std::reverse(s.begin() + 1, s.end());
            else
                std::reverse(s.begin(), s.end());
            long long int temp = stoll(s);
            if(temp > 2147483647 || temp < -2147483648)
                return 0;
            return (int)temp;
        }
    };
    

    相关文章

      网友评论

          本文标题:LeeCode 7.整数反转

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