leetcode:7. Reverse Integer

来源:互联网 发布:姓名大战 源码 编辑:程序博客网 时间:2024/06/05 20:01

问题描述:

Reverse digits of an integer.

Example1: x = 123, return 321
Example2: 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.

思路:

  • 使用long类型的rev变量存放x反转后的结果
  • 使用int类型的ans变量存放要返回的结果(不要使用rev变量强转成int类型来返回结果,因为可能会失去精度)
  • 若rev变量在int的取值范围内,返回ans,否则返回0

代码:

public class Solution {    public int reverse(int x) {        long rev = 0;     //反转之后的值        int ans = 0;      //要返回的值        //计算反转后的值        while (x != 0){                          rev = 10 * rev + x % 10;            ans = 10 * ans + x % 10;            x /= 10;        }        //是否在合理的范围内        if (rev > Integer.MAX_VALUE || rev < Integer.MIN_VALUE){            return 0;        }        return ans;    }}