【逐日一题】LeetCode 7.整数反转(数学)

[复制链接]
发表于 2026-1-22 03:31:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
【逐日一题】LeetCode 7.整数反转(数学)

标题形貌

给定一个 32 位的有符号整数 x,编写一个函数,将 x 中的数字部分反转。假如反转后的整数超出了 32 位有符号整数的范围 [-2^31, 2^31 - 1],则返回 0。假设环境不允许存储 64 位整数。
思绪分析


  • 处置处罚正负号:起首判断输入的整数 x 是否为 0,假如是,则直接返回 0。接着,将 x 转换为绝对值,以便后续处置处罚正整数。
  • 转换为字符串:将绝对值的整数转换为字符串,如许可以方便地举行反转操纵。
  • 反转字符串:利用 StringBuffer 的 reverse 方法将字符串中的数字序次反转。
  • 转换回整数:将反转后的字符串转换回整数。
  • 判断范围:查抄反转后的整数是否在 32 位有符号整数的范围内。假如不在范围内,返回 0。
  • 处置处罚正负:根据原始整数的正负,返回相应的正数或负数结果。
输入示例


  • 示例 1:输入 x = 123,输出 321。
  • 示例 2:输入 x = -123,输出 -321。
  • 示例 3:输入 x = 120,输出 21。
  • 示例 4:输入 x = 0,输出 0。
代码实现
  1. class Solution {
  2.     public int reverse(int x) {
  3.         // 判断是否为0,直接返回0
  4.         if (x == 0) {
  5.             return 0;
  6.         }
  7.         // 将x转换为绝对值,以便后续处理
  8.         long temp = Math.abs((long) x);
  9.         // 将绝对值转换为字符串
  10.         String str = Long.toString(temp);
  11.         // 使用StringBuffer进行字符串反转
  12.         StringBuffer string = new StringBuffer(str);
  13.         // 反转字符串
  14.         string.reverse();
  15.         // 将反转后的字符串转换回整数
  16.         long res = Long.parseLong(string.toString());
  17.         // 判断反转后的整数是否在32位有符号整数的范围内
  18.         if (res > Integer.MAX_VALUE || res < Integer.MIN_VALUE) {
  19.             return 0;
  20.         } else {
  21.             // 根据原始整数的正负,返回相应的正数或负数结果
  22.             return (x > 0) ? (int) res : (int) -res;
  23.         }
  24.     }
  25. }
复制代码
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表