题目描述:
https://leetcode.com/problems/reverse-integer/
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
click to show spoilers.
Have you thought about this?
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.
虽然很简单的一道题目,但还是有很多陷阱
1.一眼看上去 还以为字符串接收 直接 翻转 ok
2.原来题目就是 int reverse(int x); 直接写函数 很赞的地方
3. W了一次 少考虑了翻转溢出的情况
int reverse(int x) {
const int max = 0x7fffffff; //int最大值
const int min = 0x80000000; //int最小值
long res = 0;
while(x){
res = res * 10 + x % 10;
if(res > max || res < min){
res = 0;
return res; //在细节处有提醒
}
x = x / 10;
}
return res;
}
4.时间 8ms
效率还有待提高