給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。
示例 1:
示例 2:輸入:
123輸出:
321
示例 3:輸入:
-123
輸出:-321
注意:輸入:
120輸出:
21
假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 [−231, 231 − 1]。請根據這個假設,如果反轉後整數溢位那麼就返回 0。
特別注意:
這道題的難點不在於演算法,在於超範圍的時候怎麼處理,最初的時候是定義成long型,或者long long 型都行不通。
完整**:
提交結果:#include
#include
using
namespace std;
//2e31-1=2147483647
intreverse
(int x)
return res;
}int
main()
說明:執行結果:
通過顯示詳情
執行用時 :
8 ms, 在所有 c++ 提交中擊敗了52.22
%的使用者
記憶體消耗 :
8.2 mb, 在所有 c++ 提交中擊敗了78.71
%的使用者
c++中,可用int_max,int_min來表示int型的最大值和最小值,
int_max=2e31-1,int_min=-2e31
**中的214748364也就是int_max/10。int_min=
-2147483648
int_max=
2147483647
long_min=
-2147483648
long_max=
2147483647
long_long_min=
9223372036854775807
long_long_max=
9223372036854775807
另一種簡單明瞭的方法:
class
solution
x /=10
;}return
(int
)temp;}}
;
leetCode7 翻轉整數
給定乙個 32 位有符號整數,將整數中的數字進行反轉。示例 1 輸入 123 輸出 321 示例 2 輸入 123 輸出 321 示例 3 輸入 120 輸出 21 注意 假設我們的環境只能儲存 32 位有符號整數,其數值範圍是 231,231 1 根據這個假設,如果反轉後的整數溢位,則返回 0。分...
LeetCode 7 整數翻轉
題目描述 給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。示例 1 輸入 123輸出 321示例 2 輸入 123輸出 321示例 3 輸入 120輸出 21注意 假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 231,231 1 請根據這個假設,如果反轉後...
Leetcode 7 整數翻轉 C
思路 首先,記下原數值的正負性,用乙個long long的值開始反轉,最後得到的結果加上正負性,如果沒有溢位的話就返回結果 class solution else mark 1 while num 0 ans mark if ans maxx ans maxx return0 else return...