题意
给你一个32位的整数,有可能为负数,然后将数字倒转,输出新的数字,如果新的数字超出32位的整数,输出0.
思路
考虑到整数反转有可能溢出,所以说使用64位的 longlong 来存储,需要注意,对 x <script type="math/tex" id="MathJax-Element-45">x</script> 进行取绝对值有可能会溢出,所以说使用无符号的整型来存储.
结果
Your runtime beats 88.41 % of cpp submissions
代码
class Solution {
public:
int reverse(int x) {
int flag = x >= 0 ? 0 : 1;
unsigned int y = abs(x);
long long ans = 0;
while(y != 0){
ans = ans * 10 + y % 10;
y /= 10;
}
if(flag != 0)
ans = -ans;
if(ans > 2147483647 || ans < -2147483647)
return 0;
else
return ans;
}
};