整數反轉 力扣題解

2022-04-07 23:41:56 字數 617 閱讀 9298

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

示例 1:

輸入: 123

輸出: 321

示例 2:

輸入: -123

輸出: -321

示例 3:

輸入: 120

輸出: 21

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

題解最簡單的方法就是使用c++中的stringstream類將整數轉化為字串並進行反轉。

我們知道int型的最小值是1<<31,最大值為unsigned(1<<31)-1。而最小值在int範圍內沒有對應的絕對值,所以在剛開始首先進行判斷。

將要反轉的數的絕對值進行反轉,因為反轉後得到的整數值可能超出int型的範圍,所以使用long long型儲存。

最後將反轉後的整數值與int型最大值進行比較,若大於最大值,則溢位;否則返回反轉後的整數值與符號位的乘積。

c++stringstream類字串反轉求解:

class

solution

};

力扣題庫 整數反轉

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

力扣7 整數反轉

給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉 示例 1 輸入 123 輸出 321 示例 2 輸入 123 輸出 321 示例 3 輸入 120 輸出 21sign x 0 x正負 maxint32 1 31 1 準備int32最大值 res 0 準備結果,初始化為0 if...

力扣(7) 整數反轉

題目描述 給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。思路 先轉字串,符號位單獨考慮。對只有數字的字串進行反轉,再轉為整數型,最後與符號位相乘輸出 import math class solution def reverse self,x int int label 1 ...