leetcode 7 Reverse Integer
2017-03-28 本文已影响0人
clshinem
Reverse digits of an integer.
Example1:x = 123, return 321Example2: x = -123, return -321
click to show spoilers.
Note:
The input is assumed to be a 32-bit signed integer. Your function should **return 0 when the reversed integer overflows.
Subscribe to see which companies asked this question.
这个题讨厌的地方就是判断溢出,开始的想法是想着找到c语言最大的数值然后进行比较,后来发现不行,大概是因为原来不是溢出的后来反转之后就溢出了?
int reverse(int x) {
int y = 0;
while(x != 0){
int z = y * 10 + x % 10;
if(z/10 != y){
return 0;
}
y = z;
x = x/10;
}
return y;
}
这个题之前就做过也查到过别人的做法,所以也没有什么自己的想法,就记录一下再次写的菜问题吧。
1:
while这个里面的条件,一开始写了x%10 != 0;
输入为100,这种10的整数倍就不行了,想了一下改为了现在这个
2:
这个➗10的是之前看别人的做法。验证了一下溢出的确实是➗后不相等不知道为啥,而且想到了/10也忘了怎么放进去了。下次再做一遍吧