字符串反转+溢出判断(讨巧地用了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);
}
}
};