LintCode 413. Reverse Integer 原创Java参考解答
问题描述
http://www.lintcode.com/en/problem/reverse-integer/
Reverse digits of an integer. Returns 0 when the reversed integer overflows (signed 32-bit integer).
Example
Given x = 123
, return 321
Given x = -123
, return -321
解题思路
题目是把原三位数翻转位数。若翻转时候遇到数字溢出,则返回0。
由个位取余数开始翻转,正负数不影响。因为是用int型的,如果超出了范围,其除以10的结果就不会跟之前的结果一致,这时就可以判断出溢出,返回0。
参考代码
public class Solution { /** * @param n the integer to be reversed * @return the reversed integer */ public int reverseInteger(int n) { int reversed = 0; while (n != 0) { int temp = reversed * 10 + n % 10; n = n / 10; if (temp / 10 != reversed) { return 0; } reversed = temp; } return reversed; } }