Leetcode(7)逆整数

Leetcode(6)Z字型変換

【トピック表さ]:

32ビット符号付き整数を与え、あなたはそれぞれ逆に、この整数値を必要とします。

まず:文字列処理へ

ときに実行:40ミリ秒、メモリ消費量:11.6メガバイト効果:良いです

class Solution(object):
    def reverse(self, x):
        """
        :type x: int
        :rtype: int
        """
        if x>=0:
            r=str(x)
            r=r[::-1]
            n=int(r)
        else:
            r=str(-x)
            r=r[::-1]
            n=-(int(r))
        if x>(2**31-1) or x<(-2)**31:
            return 0
        return n

ラーニング

  • 文字列 - デジタル純粋にデジタルであることをしている、署名されていません
  • 内蔵パワー動作:**

第二の方法:転送リスト処理

ときに実行:40ミリ秒、メモリ消費量:11.6メガバイト効果:良いです

class Solution:
    def reverse(self, x: int) -> int:
        s = ''
        s = s.join(i for i in str(x))
        if s[0] == '-':
            s = s[1:] + '-'
        return int(s[::-1]) if -2**31<int(s[::-1])<2**31-1 else 0

ラーニング

  • かかわらず、それは純粋なデジタルであるかどうかのリスト処理

  • あまり熟練if式

  • [ '' 範囲のX(numRowsの数)のために] '' .join(L)

第三の方法:シフト操作

ときに実行:56ミリ、メモリ消費量:11.6メガバイト効果:OK

class Solution:
    def reverse(self, x: int) -> int:
        a = str(x)
        if(x >= 0):
            m = int(a[::-1])
            return m if m <= ((1<<31)-1) else 0
        else:
            n = -int(a[:0:-1])
            return n if n >= (-(1<<31)) else 0

ラーニング

  • 代わりに、シフトの**

おすすめ

転載: www.cnblogs.com/ymjun/p/11681723.html