Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
Here are some good questions to ask before coding. Bonus points for you if you have already thought through this!
If the integer's last digit is 0, what should the output be? ie, cases such as 10, 100.
Did you notice that the reversed integer might overflow? Assume the input is a 32-bit integer, then the reverse of 1000000003 overflows. How should you handle such cases?
For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.
分析:这题比较简单,需要注意点就是符号的判断和类型溢出的问题
符号问题好说,主要是溢出的问题,在本题中采用参数为int型。那么无符号数的范围为2^32-1即4294967295 ~ 0;当整个数调转的时候,如果溢出了应及时返回
class Solution {
public:
int reverse(int x)
{
int rst = 0;
while(x != 0){
int next_rst = rst * 10 + x % 10;
x = x / 10;
if(next_rst/10 != rst) {
rst = 0;
break;
}
rst = next_rst;
}
return rst;
}