Reverse Integer (Java)


  • 0
    T

    From : www.LeetCode.com

    3.Reverse Integer

    Description
    Reverse digits of an integer.

    Example:
    Example1: x = 123, return 321
    Example2: x = -123, return -321

    Note:
    The input is assumed to be a 32-bit signed integer. Your function should return 0 when the reversed integer overflows. 2.

    中文介绍

    描述
    给定一个整数,返回该整数反转后的结果,正负不变。
    要注意的是,当给定的整数反转后,大小超出整数的取值范围时,应当返回0。
    例子
    例如给一个整数x = 123,应当返回321
    给一个整数x = -123,应当返回-321
    给一个整数x = 2147483647,应当返回0(因为反转后会超出取值范围)。

    解决方案一

    本方案的思想:
    首先,记录下该整数的正负。
    然后,将该整数转为字符串,并通过StringBuilder的reverse()方法,获取到该字符串的反转。
    然后,将反转后的字符串再转回Int类型,此处需要考虑是否会超出取值范围,若超出范围则返回0。
    最后,将得到的整数带上它的正负返回。

    代码实现(JAVA)

    class Solution {
        public int reverse(int x) {
            int flag = 0;
    		if(x > 0){
    			flag = 0;	//表示为正		
    		}else if (x < 0){
    			flag = 1;	//表示为负
    			x = x * (-1);	//将in转为正数
    		}else if (x == 0){
    			int t = 0;
    			return t;		//若in为0,则不哟经反转,直接返回0
    		}
    		//将in转换为字符串,并反转该字符串
    		String str = new StringBuilder(((Integer)x).toString()).reverse().toString();
    		int t = 0;
    		//将字符串转为Integer,若转换失败(说明超出范围),则返回0
    		try{
    			t = Integer.parseInt(str);
    		}catch(Exception e){
    			return 0;
    		}
    		if(flag == 1){	//表示为负
    			return t * (-1);	//将t转为正数
    		}
    		return t;
        }
    }

Log in to reply
 

Looks like your connection to LeetCode Discuss was lost, please wait while we try to reconnect.