1. 程式人生 > >LeetCode Reverse Integer (處理溢位)

LeetCode Reverse Integer (處理溢位)

這道題看上去比較簡單,但是需要注意的細節和情況的處理還是很多的。

(1) 注意負數

(2)注意10,100這類數字的反轉

(3) 最容易忽視的一點,整型的溢位。(2333333339反轉超int)

注意我們計算的過程中不需要另外存數字,直接計算就好。處理溢位我們先用long long儲存,超int後直接返回0

其實我們發現,(1)和(2)都不需要特殊處理,在運算的過程中會自行處理。

class Solution {
public:
    int reverse(int x) {
    	int maxx=0x7fffffff,minn=0x80000000;//int最大值和最小值 
    	long long  ans=0;
    	while(x)
    	{
	    	ans=ans*10+x%10; 
	    	if(ans>maxx||ans<minn)//解決溢位(long  long) 
	    	{
	    		ans=0;
	    		break;
	    	}
	    	x/=10;
	    }
	    return ans;
    }
};