leetcode Reverse digits of an integer(经测试绝对正确)

来源:互联网 发布:淘宝宝贝上传图片问题 编辑:程序博客网 时间:2024/06/05 20:04

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.

Update (2014-11-10):
Test cases had been added to test the overflow behavior.

Subscribe to see which companies asked this question

本题当时做的时候出现了主要问题就是溢出, 由于没有考虑到当x == Integer.MIN_VALUE时,reverse过后依然会溢出的情况。参考了网上有关该题的代码,好多都没有考虑溢出,在这儿总结一下。

public int reverse(int x){int negative = 1;if(x <= Integer.MIN_VALUE)return 0;if(x < 0){x = -x;negative = -1;}long y = x % 10;while(x / 10 != 0){x /= 10;y *= 10;y += x %10;}if(y > Integer.MAX_VALUE)return 0;elsereturn (int)y * negative;}



0 0
原创粉丝点击