LeetCode7: Reverse Integer
皆さん こんばんは。
今天不爽,做了两个题。不过第二个题(也就是这个题)看起来非常简单。题目意思就是把一个int型的数反过来。比如321就要返回123,-321就要返回-123。
刚拿到题目的时候就想这有什么难的?遍历一遍数字不就完了么。后来发现还是有一些边界情况要考虑的。
比如当输入是-2147483648根本就不能先把它变成正整数,不然就溢出了,这时候特判一下直接返回0(尼玛提交了一次错误答案我才知道如果溢出要返回0啊),另外就是如果在计算过程中有溢出也要返回0,好了讲完了,看代码。12345678910111213141516int reverse(int x) { if(x == -2147483648) return 0; long long INTMAX = 2147483647; long long ans = 0; int symbol = 1; if(x < 0){ symbol = -1; x = -x; } while(x){ ans = ans*10+x%10; if(ans > INTMAX) return 0; x = x/10; } ans *= symbol; return ans;}
好了就是这样。おやすみなさい。