字符串反转+溢出判断(讨巧地用了INT_MAX和INT_MIN的十进制表示)
代码如下(0ms/5.7MB):
class Solution {
public:
int reverse(int x) {
string int_max="2147483647",int_min="2147483648";
string sx="",r_sx="";
if(x<0) sx=to_string(abs(x));
else sx=to_string(x);
r_sx.assign(sx.rbegin(),sx.rend());
if(x<0){
if(r_sx.length()>10) return 0;
else if(r_sx.length()==10 && r_sx>int_min) return 0;
else return -stoi(r_sx);
}
else{
if(r_sx.length()>10) return 0;
else if(r_sx.length()==10 && r_sx>int_max) return 0;
else return stoi(r_sx);
}
}
};
本文介绍了一种使用C++实现的字符串反转方法,并通过比较反转后的字符串与INT_MAX和INT_MIN来判断是否发生整数溢出。该方法首先将整数转换为字符串,再进行反转操作。
162

被折叠的 条评论
为什么被折叠?



