題目給出乙個 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 ...