abs 不會整數 方法 溢位 7 整數反轉

2021-10-13 22:42:59 字數 1547 閱讀 6242

題目

給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。

示例 1

輸入:123輸出:321
示例 2

輸入:-123輸出:-321
示例 3

輸入:120輸出:21
注意假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 [−231, 231 − 1]。請根據這個假設,如果反轉後整數溢位那麼就返回 0。

cpp

class solution ;

int max = 0x7fffffff;

int reverse(int x)

} int j;

for (int i = ret.size() - 1, j = 0; i >= 0; i--, j++)

return rev_num > max || rev_num < (-1 * (max + 1)) ? 0 : rev_num;

}};

class solution 

return (b > max || b < (-1 * (max + 1))) ? 0 : b;

}};

方法:彈出和推入數字 & 溢位前進行檢查思路我們可以一次構建反轉整數的一位數字。在這樣做的時候,我們可以預先檢查向原整數附加另一位數字是否會導致溢位。

演算法

反轉整數的方法可以與反轉字串進行模擬。

我們想重複「彈出」 x 的最後一位數字,並將它「推入」到 rev 的後面。最後,rev 將與 x 相反。

要在沒有輔助堆疊 / 陣列的幫助下 「彈出」 和 「推入」 數字,我們可以使用數學方法。

//pop operation:

pop = x % 10;

x /= 10;

//push operation:

temp = rev * 10 + pop;

rev = temp;

但是,這種方法很危險,因為當 temp=rev⋅10+pop 時會導致溢位。

幸運的是,事先檢查這個語句是否會導致溢位很容易。

為了便於解釋,我們假設 rev 是正數。

當rev為負時可以應用類似的邏輯。

class solution 

return rev;}};

複雜度分析

c 判斷整數翻轉溢位 7 整數反轉

01 題目資訊 給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。示例 1 輸入 123輸出 321示例 2 輸入 123輸出 321示例 3 輸入 120輸出 21注意 假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 2 31,2 31 1 請根據這個假設,...

leecode python簡單題 7 整數反轉

給你乙個 32 位的有符號整數 x 返回 x 中每位上的數字反轉後的結果。如果反轉後整數超過 32 位的有符號整數的範圍 231,231 1 就返回 0。假設環境不允許儲存 64 位整數 有符號或無符號 class solution def reverse self,x int int num 0 ...

整數取出每位數字 LeetCode 7 整數反轉

7.整數反轉 給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。示例 輸入 123輸出 321輸入 123輸出 321輸入 120輸出 21一開始的思路是用除留餘數的方法,從後到前獲取x每一位上的值,然後構建新的數字res 如下 var reverse function x 先...