LeetCode 7 - Reverse Integer
一、问题描述
Description: Reverse digits of an integer.
For example: Input x = 123, return 321
Input x = -123, return -321
二、解题报告
本题是对一个整数进行逆转(按整数位),其实思路比较直观:从个位开始,求出每一位并入栈。然后从栈中弹出每一个位,与
class Solution {
public:
int reverse(int x) {
uint64_t n = x>0 ? x:-x;
stack<int> s; // 存储每一位
while(n) {
s.push(n%10);
n = n/10;
}
uint64_t m10 = 1;
while(!s.empty()) {
n += m10 * s.top();
s.pop();
m10 *= 10;
}
if(n > INT_MAX) // 如果超出范围
return 0;
else
return x>0? n:-n;
}
};
注意,逆转以后如果值超出了int
的上界,则返回0。
LeetCode答案源代码:https://github.com/SongLee24/LeetCode
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步