LeetCode解題記錄(7) 整數反轉

2021-10-01 17:41:51 字數 781 閱讀 4742

解題方案

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