7 Reverse Integer 整數取反

2021-08-21 03:46:11 字數 899 閱讀 6857

題目要求很簡單,就是給定乙個在[−2^31, 2^31 − 1]範圍內的整數,對該整數取反。

比如,

輸入=123, 輸出=321。

輸入=-123,輸出=-321。

輸入=120, 輸出=21。

這個題目在求解的時候,需要注意的是資料型別的選取,因為涉及到溢位,其次當輸出結果產出範圍後,結果要變為0。在編寫**的時候,因為忘記了移位符號和運算子的優先順序順序,卡了一下,剛好當天晚上在看《深入理解計算機系統》時候,看到這個知識點,移位符的優先順序是低於運算子的。在python中是不需要考慮資料型別的,**如下所示:

c++:

@by_chandepire

int reverse(int x)

return result>max || result < min?0:result;

}

python:

@by_chandepire

defreverse

(self, x):

""" :type x: int

:rtype: int

"""result = 0

min = -(1

<<31)

max = (1

<<31) - 1

flag = 1

if x < 0:

flag = -1

x = -x

while x:

result = result*10 + x % 10

x = x / 10

if result < min or result > max:

return

0else:

return result*flag

Reverse Integer演算法題

注意有符號的32bits整數的範圍 return reservation else 之前一直在思考如果給你乙個大整數,如何把這個給定的大整數分解成乙個乙個的數字。後來做了這道題給我很大的啟發。因為我開始的想法是想把這個數轉換成字串的方法來實現這道題的。其實要把乙個大整數拆分成乙個個數隻需要用到取餘 ...

Reverse Integer(反轉整型數)

reverse digits of an integer.反轉乙個整型數 example1 x 123,return 321 example2 x 123,return 321 1.個人分析 思路一 整型數轉字串 反轉字串 字串轉整型 思路二 數學解法,不斷地進行整除和取餘運算。2.個人解法 1 i...

演算法系列 Reverse Integer

reverse digits of an integer.example1 x 123,return 321 example2 x 123,return 321 note the input is assumed to be a 32 bit signed integer.your function...