解題方案
給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。
輸入:123
輸出:321
輸入:-123
輸出:-321
輸入:120
輸出:21
注意:
假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 [−231, 231 − 1]。請根據這個假設,如果反轉後整數溢位那麼就返回 0。
資料處理題,這個題比較簡單,只需要注意0的處理即可。
用經典的資料反轉方法處理,即用移位和取餘結合。
處理「0」的問題,我這裡考慮到了兩種方法,開始我考慮用溢位判斷,通過比較結果是否與原數符號相反,但是這種解法存在問題,即本題中的資料是十進位制給出的,乘以十溢位後可能不會是負數,因此不好判斷,再加上leetcode的系統不允許這種溢位…
所以我選擇用乙個更長的資料型別儲存,使用c++自帶的long型變數儲存,這樣判斷是否溢位只需要判斷取int得到的數與原數是否相等即可。
演算法如下:
class
solutionif(
(int
)res != res)
return
(int
)res;}}
;
執行結果如下:
所有**都可以在我的github上找到:leetcode
LeetCode解題記錄(5)
我將慢慢開始做leetcode上的題,並做解題記錄發布在這裡。我每題會給出一到多個解法,記錄思考過程。我演算法巨爛,是想通過這種方式稍微補補,基本功和我一樣差的小夥伴可以和我一起共勉,有大神路過可以指點一二,我感激不盡。解題的最底要求是能通過leetcode的檢測,我不會喪病的為了各種提高效率在乙個...
leetcode解題記錄(二)
問題描述 編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 示例1 輸入 flower flow flight 輸出 fl 示例2 輸入 dog racecar car 輸出 解釋 輸入不存在公共字首。說明 所有輸入只包含小寫字母 a z 思路 首先找出陣列中長度最短的字串...
Leetcode刷題記錄 反轉整數
方法有參考其他部落格 方法一 使用python中的字串 倒序 def reverse x if x 0 return 0 str x str x x if str x 0 x x str x 1 lstrip 0 rstrip 1表示倒序 x int x if 2 31 31 1 return x ...