leetcode 7.整数反转
看到这题最直接的思路,是想着先转化为字符串再反转,然后转化为整数输出。转化为输出的时候需要考虑溢出的情况。而且如何对负数的字符串进行处理每个人也有各自的方法。
以下记录一个看到的题解比较清晰的实现
class Solution { public: int reverse(int x) { long result; //利用long避免溢出 if (x == INT_MIN) { return 0; } if (x < 0) { return -reverse(-x); } stringstream ss; ss << x; string tmpStr; ss >> tmpStr; int tmpStrSize = int(tmpStr.size()); string resultStr; for (int index = tmpStrSize - 1; index >= 0; index--) { resultStr.push_back(tmpStr[index]); } ss.clear(); //使用前记得clear ss << resultStr; ss >> result; if (result > INT_MAX) { return 0; } return int(result); } }; 作者:pinku-2 链接:https://leetcode-cn.com/problems/reverse-integer/solution/zheng-shu-fan-zhuan-cshi-xian-liang-chong-jie-fa-z/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
另一种实现思路,不需要经过转化。每次提取末尾数字放到开头,同时检查是否溢出。
class Solution { public: int reverse(int x) { int rev = 0; while (x != 0) { int pop = x % 10; x /= 10; if (rev > INT_MAX/10 || (rev == INT_MAX / 10 && pop > 7)) return 0; if (rev < INT_MIN/10 || (rev == INT_MIN / 10 && pop < -8)) return 0; rev = rev * 10 + pop; } return rev; } };
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南