zoukankan      html  css  js  c++  java
  • 力扣题解 7th 整数反转

    7th 整数反转

    • 模拟法

      利用%运算和/运算,模拟两数反转的过程。难点在于溢出条件的判断(溢出发生于ans = ans * 10 + a阶段),在ans * 10 + a运算完成之前:

      • 对于正数:
        • 当ans大于max_value/10,说明当ans*10后一定溢出。
        • 当ans小于max_value/10,则它+a后也不会溢出。
        • 当ans等于max_value/10,在a>7时他会溢出(因为max_value%10==7)。
      • 对于负数也是一样的道理。
      class Solution {
          public int reverse(int x) {
              int ans = 0;
              while (x != 0) {
                  int a = x % 10;
                  if (ans > Integer.MAX_VALUE / 10 || (ans == Integer.MAX_VALUE / 10 && a > 7)) return 0;
                  if (ans < Integer.MIN_VALUE / 10 || (ans == Integer.MIN_VALUE / 10 && a < -8)) return 0;
                  ans = ans * 10 + a;
                  x /= 10;
              }
              return ans;
          }
      }
      
  • 相关阅读:
    品质家居 生活之魅
    珍爱之礼 美妙感受
    节日礼物清单
    2014新年礼物推荐清单
    Python元组
    python更新列表
    Python列表
    Python 数字
    Python字符串
    python标准数据类型
  • 原文地址:https://www.cnblogs.com/fromneptune/p/13238099.html
Copyright © 2011-2022 走看看