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
-
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進表現であることを示しています
-
正の整数のビットを逆にする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