LintCode 413. Reverse Integer 原创Java参考解答

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; 
    } 
} 

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注