目次
タイトル説明
32ビットの符号付き整数を指定すると、整数の各ビットの桁を反転する必要があります。オーバーフローした32ビット数の場合、0が返されます。
入出力の説明
入る | 321 |
出力 | 123 |
解決
トピックは比較的単純であり、2つの場所に注意を払う必要があります。
- 入力した数値は負の数である可能性があります。反転後も負の数は負です
- 反転数が32ビットを超える場合は、0を返す必要があります
コード
class Solution:
def reverse(self, x: int) -> int:
positive = True
if x < 0:
positive = False
x = -x
x = int(str(x)[::-1])
if not positive:
x = -x
if self.out_of_range(x):
return 0
else:
return x
@staticmethod
def out_of_range(x: int) -> bool:
return x > 2 ** 31 - 1 or x < -2 ** 31
コードウォークスルー
クラス解決策: def reverse(self、x:int)-> int:#最初にxの正と負を判断します。記録後、xを正の数に変換します(逆順に便利) 。x<0の場合は 正= True : 正= False x = -x #逆順、次にx x = int(str(x)[::- 1]) 正でない場合: x = -x #xが32ビットオーバーフローするかどうかを判別if self.out_of_range(x): return 0 else: return x @staticmethod def out_of_range(x:int)-> bool: return x> 2 * * 31-1またはx <-2 ** 31