給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。
示例 1:
輸入: 123
輸出: 321
示例 2:
輸入: -123
輸出: -321
示例 3:
輸入: 120
輸出: 21
注意:假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 [−231, 231 − 1]。請根據這個假設,如果反轉後整數溢位那麼就返回 0。
可以直接輾轉相除,依次獲得原始資料尾巴的數字;也可以採用雙指標法,跳過特殊條件。
需要考慮三處細節:1.負號;2.數字尾巴的『0』;3.數字溢位;
1class
solution:
2def reverse(self, x: int) ->int:
3if x == 0: #
這種情況需要特殊考慮,負責tail會陣列越界
4return
05 numstr = list(str(x)) #
python的字串不能直接操作下標,需要轉換為列表
6 lenstr =len(numstr)
7 head =0
8 tail = lenstr - 1
9 storeindex = 0 #
記錄資料除『0』之外的末尾數字的位置
10while numstr[head] == '-'
:11 head += 1
12while numstr[tail] == '0'
:13 tail -= 1
14 storeindex =tail
15while head 16 numstr[head], numstr[tail] =numstr[tail], numstr[head]
17 head += 1
18 tail -= 1
19 strnum = int(''.join(numstr[:storeindex + 1])) #
列表需要先轉換為字串,再轉換為數字
20if strnum >= -2147483648 and strnum <= 2147483647:
21return
strnum
22return 0
1class
solution
11long
long num = 0; //
不能申請為int型
12while
(x)
16if
(flag)
17 num = -1 *num;
18if(num >= -2147483648 && num <= 2147483647)19
return
num;
20return0;
21}22 };
數值的整數次方(Python and C 寫法)
實現函式double power double base,int exponent 求base的exponent次方。不得使用庫函式,同時不需要考慮大數問題。示例 1 輸入 2.00000,10 輸出 1024.00000 示例 2 輸入 2.10000,3 輸出 9.26100 示例 3 輸入 2...
lintcode反轉整數
反轉整數 將乙個整數中的數字進行顛倒,當顛倒後的整數溢位時,返回 0 標記為 32 位整數 您在真實的面試中是否遇到過這個題?yes 樣例給定x 123,返回321 給定x 123,返回 321 標籤 相關題目 本題採用數學計算法而不是文字翻轉,所以末尾為0的翻轉不用考慮。坑就是要考慮溢位啊!一開始...
7 整數反轉
鏈結 給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。示例 1 輸入 123 輸出 321示例2 輸入 123 輸出 321示例 3 輸入 120 輸出 21注意 假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 231,231 1 請根據這個假設,如果反轉後...