給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。
示例 1:
輸入: 123
輸出: 321
示例 2:
輸入: -123
輸出: -321
示例 3:
輸入: 120
輸出: 21
注意:假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 [−231, 231 − 1]。請根據這個假設,如果反轉後整數溢位那麼就返回 0。
反轉乙個整數,只需要將x取餘,然後x除以10,直到最後x/10==0就可以了。
例如:res=0
x取餘等於3 res=res*10+3=3 x=123/10=12
x取餘等於2 res=res*10+2=32 x=12/10=1
x取餘等於1 res=res*10+1=321 x=1/10=0(演算法停止)
學習了整數反轉的方法,在判斷溢位時花費了太多時間。
整數反轉 leetcode力扣第7題
要注意的一點是整型溢位的判斷是在反轉後,所以只要用長整型儲存反轉結果,然後再判斷是否超出整型範圍就可以。本來這道簡單題也不至於做不出來,但是這個整型溢位的問題,我糾結了很久,以為是輸入就要判斷,所以記錄一下這個坑點。class solution int nums 33 int length 0 wh...
Leetcode第7題正數反轉
最近開始學習演算法,先直接在力扣上做簡單的題目,發現長時間不做手特別生,考慮步驟提交好多次都提交不上去 題目要求 自己的思路 從末位開始,依次拿到乙個數 將每次拿到的數放到依次排開 按照自己的思路實現了一下,一直提交不通過,後來才發現很多數字反轉後可能超出 int 的取值範圍。所以這樣的考慮太過於簡...
leetcode刷題第2題 整數反轉
題目 給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。注意 假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 231,231 1 請根據這個假設,如果反轉後整數溢位那麼就返回 0。求解 1.c int reverse int x if resultint ma...