Leetcode部分代码(简单版)

7.Reverse Integer

Leetcode部分代码(简单版)

class Solution {
    public int reverse(int x) {
       List<Integer> aList = new ArrayList<Integer>();
		    	boolean sig = false;
		    	if(x<0){sig = true;x=Math.abs(x);
		    	if (x==Integer.MIN_VALUE){
		    		return 0;
		    	}
		    	}
		    	while(x!=0){
		    		aList.add(x%10);
		    		x=x/10;
		    	}
		    	if(aList.size()==0){
		    		return 0;
		    	}
		    	long sum = 0;
		    	int count =aList.size(); 
		    	for(int i = 0; i<count;i++){
		    		sum = sum + aList.get(i)*(long)(Math.pow(10, count-1-i));
		    	}
		    	if(sig){
		    		boolean resultSig = sum*-1<-(long)Math.pow(2, 31);
		    		if(resultSig){
		    			return 0;
		    		}else{
		    			return (int)sum*-1;
		    		}
		    	}
		    	else{
		    		boolean resultSig = sum>(long)Math.pow(2, 31)-1;
		    		if(resultSig){
		    			return 0;
		    		}else{
		    			return (int)sum;
		    		}
		    	}
    }
}

【注记】Max.abs当传入参数为Integer最小值,则不会返回正数,因为越界了,会返回数本身。坑~