Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで整数を逆にする


32ビットの符号付き整数が1つあるとします。数字を取り、数字を逆にする必要があります。したがって、数値が425のような場合、出力は524になります。数値が符号付きであることに注意する必要があるもう1つの点は、負の数が存在する可能性があることです。したがって、番号が–425の場合、–524になります。

ここにいくつかの仮定があります。 32ビット符号付き整数のドメインで使用していると仮定しました。したがって、範囲は[-232〜232 –1]になります。したがって、数値が範囲内にない場合、関数は0を返します。

これを解決するために、Pythonコードを使用します。まず、指定された整数を文字列に変換します。したがって、文字列の最初の文字が'-'の場合、数値は負の数なので、インデックス1からインデックスの長さ– 1に逆になります。最後に整数に変換してから返します。正の数の場合は、文字列を逆にして、返す前に整数にします。いずれの場合も、数値が32ビット整数の範囲内にあるかどうかを確認します。範囲を超えている場合は、単に0を返します。

理解を深めるために実装を見てみましょう

class Solution(object):
   def reverse(self, x):
      """
      :type x: int
      :rtype: int
      """
      x = str(x)
      if x[0] == '-':
         a = int('-' + x[-1:0:-1])
         if a >= -2147483648 and a<= 2147483647:
            return a
         else:
            return 0
         else:
            a = int(x[::-1])
            if a >= -2147483648 and a<= 2147483647:
               return a
            else:
               return 0
ob1 = Solution()
print(ob1.reverse(-425))

入力

print(ob1.reverse(-425))

出力

-524

  1. Pythonのbin()

    bin()関数は、10進数を2進数に変換します。変換するパラメータとして正または負の整数を使用できます。 構文 以下は関数の構文です。 bin(n) Parameters : an integer to convert Return Value : A binary string of an integer or int object. Exceptions : Raises TypeError when a float value is sent as argument. 次の例では、正と負の整数を2進数に変換します。結果には接頭辞0bが付いており、数値が2進表現であることを示しています

  2. 正の整数のビットを逆にするPythonプログラム?

    まず、bin()関数を使用して数値を2進数に変換します。次に、bin()が数値の2進表現のプレフィックスとして0bを追加し、残りの部分を逆にするため、2進表現の最初の2文字をスキップします。また、文字から、左から最後から2番目の文字まで反転します。反転した2進文字列を整数に変換します。 アルゴリズム integernumber(n,bit_size) /* n is the number and bit_size is the bitsize */ Step 1: first convert number into binary . Step 2: skip the first two c