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也忘了怎么放进去了。下次再做一遍吧

上一篇 下一篇

猜你喜欢

热点阅读