溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

[LeetCode]7. Reverse Integer

發(fā)布時間:2020-07-10 07:29:29 來源:網(wǎng)絡(luò) 閱讀:540 作者:風子余 欄目:編程語言

Reverse digits of an integer.

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


整數(shù)反轉(zhuǎn):假如輸入123,則輸出321;


解題:

1)如果輸入x為負數(shù),那么先取負數(shù)的絕對值。并修改flag值為0.

2)通過除十取余開始逐步取出個位數(shù)值,并將該數(shù)值依次加到反轉(zhuǎn)數(shù)值中。

3)對輸入數(shù)字除十取商。重復(fù)第二步,直到商為零。

4)如果是負數(shù)輸入,則將絕對值取反。


說明:

1)輸出結(jié)果變量val聲明為long long類型,是防止操作過程中出現(xiàn)int整數(shù)溢出。

2)返回值:如果輸出結(jié)果大于int型的最大值或者小于int型的最小值時(溢出),那么返回0.否則返回正常輸出結(jié)果。

int reverse(int x) 
{
    int flag = -1; 
    if ( x < 0 ) { 
        x = x * flag;
        flag = 0;
    }
    
    int tmp = 0;
    long long val = 0;
    
    while ( x ) { 
        tmp = x % 10; 
        val = val * 10 + tmp;
        x   = x / 10; 
    }
     
    if ( flag == 0 ) { 
        val = -1 * val;
    } 
      
    return val > INT_MAX || val < INT_MIN ? 0 : val;
}


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI