【LeetCode】7. 整数反转
题目
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入: 123
输出: 321
示例 2:
输入: -123
输出: -321
解题
解法一、转换字符串 && 反转字符串
这里只需要判断边界(是否溢出,负数符号)

public int Reverse(int x) { var flag = x < 0 ? -1 : 1; var str = x.ToString(); var ans = default(long); if (flag > 0) { ans = long.Parse(new String(str.ToCharArray().Reverse().ToArray())); if (ans > int.MaxValue) return 0; } else { str = str.Substring(1); ans = long.Parse(new String(str.ToCharArray().Reverse().ToArray())); if ((ans - int.MaxValue) > 1) return 0; } return (int)ans * flag; }
解法二、数学计算
字符串的操作是比较耗时,而且需要额外的空间
个位 = x % 10;
x减少一位 = x / 10
反转数字 = ans * 10 + 个位
不断循环直至x == 0,只需要判断溢出条件就可以

public int Reverse(int x) { int ans = 0; while (x != 0) { int pop = x % 10; x /= 10; if (ans > int.MaxValue / 10 || ((ans == int.MaxValue / 10) && pop > 7)) return 0; if (ans < int.MinValue / 10 || ((ans == int.MinValue / 10) && pop < -8)) return 0; ans = ans * 10 + pop; } return ans; }
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-integer
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗