zoukankan      html  css  js  c++  java
  • 【LeetCode】7. 整数反转

    来源

    https://leetcode-cn.com/problems/reverse-integer

    描述

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

    示例 1:
    输入: 123
    输出: 321

    示例 2:
    输入: -123
    输出: -321

    示例 3:
    输入: 120
    输出: 21

    注意:
    假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

    int reverse(int x) {}

    思路:

    从低位开始遍历 (x) 中的每一位数字 (pop)
     查看是否溢出,
       大于最大值时,即 (result * 10 + pop > max),返回0
        (result > max / 10)
        (result == max / 10)(pop > max \% 10)
       小于最小值时,即 (result * 10 + pop < min),返回0
        (result < min / 10)
        (result == min / 10)(pop < min \% 10)
     更新当前结果 (result = result * 10 + pop)
     更新 (x) 的值 (x /= 10)

    C++

    展开后查看
    class Solution {
    public:
        int reverse(int x) {
            int result = 0;
            while(x != 0){
                int pop = x % 10;
                if(result > INT_MAX / 10 || (result == INT_MAX / 10 && pop > INT_MAX %10)){
                    return 0;
                }
                if(result < INT_MIN / 10 || (result == INT_MIN / 10 &&  pop < INT_MIN % 10)){
                    return 0;
                }
                result = result * 10 + pop;
                x /= 10;
            }
            return result;
        }
    };
    

    Java

    展开后查看
    class Solution {
        public int reverse(int x) {
            int result = 0;
            while(x != 0){
                int pop = x % 10;
                if(result > Integer.MAX_VALUE / 10 || (result == Integer.MAX_VALUE / 10 && pop > Integer.MAX_VALUE % 10)){
                    return 0;
                }
                if(result < Integer.MIN_VALUE / 10 || (result == Integer.MIN_VALUE / 10 && pop < Integer.MIN_VALUE % 10)){
                    return 0;
                }
                result = result * 10 + pop;
                x /= 10;
            }
            return result;
        }
    }
    
  • 相关阅读:
    storm中DAU实时计算方案
    冒泡排序
    跨域
    关于java面试题
    vue+npm+Element插件+路由
    Android云端APP
    js图片预览带进度条
    jQuery上传文件显示进度条
    SSM+form表单文件上传
    SSM批量添加数据
  • 原文地址:https://www.cnblogs.com/crazyBlogs/p/13085096.html
Copyright © 2011-2022 走看看