博客
关于我
力扣(LeetCode) -- 算法第七题-- 整数反转
阅读量:343 次
发布时间:2019-03-04

本文共 1150 字,大约阅读时间需要 3 分钟。

为了解决这个问题,我们需要将给定的32位有符号整数反转数字部分,并检查反转后的结果是否超过32位整数的范围。如果超出范围,则返回0。

方法思路

  • 处理符号:首先判断输入整数的符号,处理绝对值部分进行反转。
  • 反转数字:使用循环逐步反转数字,每次取出个位数字并将其添加到结果中。
  • 检查范围:在每一步反转过程中,检查反转后的结果是否会超过32位整数的最大值或最小值。如果超过,立即返回0。
  • 返回结果:如果反转后的结果在范围内,考虑符号并返回结果。
  • 解决代码

    public class Solution {    public int reverse(int x) {        if (x == 0) {            return 0;        }        int sign = x < 0 ? -1 : 1;        long xAbs = Math.abs((long) x);        long reversed = 0;        while (xAbs != 0) {            int digit = (int) (xAbs % 10);            xAbs /= 10;            long temp = reversed * 10 + digit;            if (temp > Integer.MAX_VALUE) {                return 0;            }            if (temp < Integer.MIN_VALUE) {                return 0;            }            reversed = temp;        }        if (sign == -1) {            if (reversed < Integer.MIN_VALUE) {                return 0;            }            return - (int) reversed;        }        return (int) reversed;    }}

    代码解释

  • 符号处理:首先检查输入值是否为0,如果是,则直接返回0。否则,记录符号并处理绝对值部分。
  • 循环反转:使用循环逐步取出数字个位,构建反转后的结果。
  • 范围检查:在每一步反转后,检查结果是否超过整数范围,如果超过,立即返回0。
  • 符号恢复:如果输入值为负数,检查结果是否在最小值范围内,否则返回反转结果。
  • 这种方法确保了在每一步都检查结果是否在允许范围内,从而避免了溢出或错误结果。

    转载地址:http://rbse.baihongyu.com/

    你可能感兴趣的文章
    NPOI
    查看>>
    NPOI之Excel——合并单元格、设置样式、输入公式
    查看>>
    NPOI初级教程
    查看>>
    NPOI利用多任务模式分批写入多个Excel
    查看>>
    NPOI在Excel中插入图片
    查看>>
    NPOI将某个程序段耗时插入Excel
    查看>>
    NPOI格式设置
    查看>>
    NPOI设置单元格格式
    查看>>
    Npp删除选中行的Macro录制方式
    查看>>
    NR,NF,FNR
    查看>>
    nrf24l01+arduino
    查看>>
    nrf开发笔记一开发软件
    查看>>
    nrm —— 快速切换 NPM 源 (附带测速功能)
    查看>>
    nrm报错 [ERR_INVALID_ARG_TYPE]
    查看>>
    NS3 IP首部校验和
    查看>>
    NSDateFormatter的替代方法
    查看>>
    NSError 的使用方法
    查看>>
    NSGA-Ⅲ源代码
    查看>>
    nsis 安装脚本示例(转)
    查看>>
    NSJSON的用法(oc系统自带的解析方法)
    查看>>