題目要求很簡單,就是給定乙個在[−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...