整数反転(Python、LeetCode)

目次

タイトル説明

解決

コード

コードウォークスルー

ポータル


 

タイトル説明

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
        

        

        

 

ポータル

LeetCodeテストの質問リンク

str()関数

int()関数

おすすめ

転載: blog.csdn.net/TCatTime/article/details/107750869