leetcode-整数反転
32ビットのシンボル付き整数を与えます.この整数の各ビットの数字を反転する必要があります.
例1:
例2:
例3:
注意:
我々の環境では32ビット以下の符号付き整数しか記憶できないと仮定すると,その数値範囲は[−231,231−1]である.この仮定に基づいて、反転後に整数がオーバーフローした場合は0を返します.
実行時間:56 ms、Reverse IntegerのPython 3コミットで98.51%のユーザーを破った
メモリ消費量:13.1 MB、Reverse IntegerのPython 3コミットで90.48%のユーザーを破った
例1:
: 123 : 321
例2:
: -123 : -321
例3:
: 120 : 21
注意:
我々の環境では32ビット以下の符号付き整数しか記憶できないと仮定すると,その数値範囲は[−231,231−1]である.この仮定に基づいて、反転後に整数がオーバーフローした場合は0を返します.
class Solution:
def reverse(self, x: int) -> int:
if x > 0:
xstr = str(x)
if not xstr.endswith('0'):
xlist = list(xstr)
xlist.reverse()
x = int(''.join(xlist))
else:
xlist = list(xstr)
xlist.pop()
xlist.reverse()
x = int(''.join(xlist))
if x > pow(2, 31):
return 0
else:
return x
elif x == 0:
return x
else:
x = x.__abs__()
xstr = str(x)
if not xstr.endswith('0'):
xlist = list(xstr)
xlist.reverse()
x = int(''.join(xlist))
else:
xlist = list(xstr)
xlist.pop()
xlist.reverse()
x = int(''.join(xlist))
if x > pow(2, 31):
return 0
else:
return 0-x
実行時間:56 ms、Reverse IntegerのPython 3コミットで98.51%のユーザーを破った
メモリ消費量:13.1 MB、Reverse IntegerのPython 3コミットで90.48%のユーザーを破った