整數反轉(Python and C 解法)

2022-08-24 19:15:12 字數 1613 閱讀 3400

給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。

示例 1:

輸入: 123

輸出: 321

示例 2:

輸入: -123

輸出: -321

示例 3:

輸入: 120

輸出: 21

注意:假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 [−231,  231 − 1]。請根據這個假設,如果反轉後整數溢位那麼就返回 0。

可以直接輾轉相除,依次獲得原始資料尾巴的數字;也可以採用雙指標法,跳過特殊條件。

需要考慮三處細節:1.負號;2.數字尾巴的『0』;3.數字溢位;

1

class

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

1

class

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 請根據這個假設,如果反轉後...