• 【LeetCode & 剑指offer刷题】字符串题4:Reverse Integer


    【LeetCode & 剑指offer 刷题笔记】目录(持续更新中...)

    Reverse Integer

    Given a 32-bit signed integer, reverse digits of an integer.
    Example 1:
    Input: 123
    Output: 321
    Example 2:
    Input: -123
    Output: -321
    Example 3:
    Input: 120
    Output: 21
    Note:
    Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: [−231,  231 − 1]. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.

    C++
     
    #include<climits>
    /*static int x = []() {
        std::ios::sync_with_stdio(false);
        cin.tie(NULL); 
        return 0;
    }();*/
    class Solution
    {
    public:
        int reverse(int x)
        {
            //int反转后最大也不超过用33位(1000……)。
            long long res = 0;//保证即使在32位系统中变量也为64位,比int位宽大
            long long t = x; //中间变量
           
            t = t>0? t:-t; //取绝对值
            while(t>0)
            {
                res = res*10 + t%10;
                t /= 10; //t除以10再模10就能依次获得各位数字
            }
           
            //判断符号
            if(x>0)//处理溢出情况
            {
                if(res>INT_MAX) return 0;
                else return res;
            }
            else
            {
                res = -res;
                if(res<INT_MIN) return 0;
                else return res;
            }
           
        }
    };
     
     
  • 相关阅读:
    MongoDB学习(翻译6)
    MongoDB学习(翻译5)
    MongoDB学习(翻译4)
    MongoDB学习之--安全和认证
    MongoDB学习(翻译3)
    前端面试题—1
    静态网页制作
    风雨哈佛路感后感
    实习记录11
    实习记录10
  • 原文地址:https://www.cnblogs.com/wikiwen/p/10224809.html
Copyright © 2020-2023  润新知