7-reverse-integer

题目描述:

Given a 32-bit signed integer, reverse digits of an integer.

Example 1:

Input: 123
Output: 321
Example 2:

Input: -123
Output: -321
Example 3:

Input: 120
Output: 21
Note:
Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: [−231,  231 − 1]. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.

解决代码:

package com.jack.algorithm;

/**
 * create by jack 2018/10/22
 *
 * @auther jack
 * @date: 2018/10/22 23:32
 * @Description:
 * 反转整数
 */
public class ReverseInteger {
    /**
     * 题目描述:
     * https://leetcode.com/problems/reverse-integer/
     *
     * @param x
     * @return
     */
    public static int reverse(int x) {
        boolean flag = false;
        if (x < 0) {
            flag = true;
            x = -x;
        }
        long sum = 0;
        while (x > 0) {
            sum =sum*10 +x%10;
            x = x/10;
        }
        int rs = 0;
        if (flag) {
            sum = -sum;
        }
        //判断是否在指定的范围之内
        if (sum >= Integer.MIN_VALUE && sum <= Integer.MAX_VALUE) {
            rs = (int) sum;
        } else {
            //超出指定范围返回0
            rs = 0;
        }
        return rs;
    }


    public static void main(String[] args) {
        int num = reverse(123);
        System.out.println("num ="+num);
    }
}

源码地址:

源码

猜你喜欢

转载自blog.csdn.net/wj903829182/article/details/83316174