Leetcode Reverse Bits Python python配列の高度な切断(スライス)操作|python[:]の多重操作|スライス反転リスト

3727 ワード

Leetcode 190題Reverse Bits Reverse bits of a given 32 bits unsigned integer.
Example 1:

Input: 00000010100101000001111010011100
Output: 00111001011110000010100101000000
Explanation: The input binary string 00000010100101000001111010011100 represents the unsigned integer 43261596, so return 964176192 which its binary representation is 00111001011110000010100101000000.
Example 2:

Input: 11111111111111111111111111111101
Output: 10111111111111111111111111111111
Explanation: The input binary string 11111111111111111111111111111101 represents the unsigned integer 4294967293, so return 3221225471 which its binary representation is 10111111111111111111111111111111.
Note:

Note that in some languages such as Java, there is no unsigned integer type. In this case, both input and output will be given as signed integer type and should not affect your implementation, as the internal binary representation of the integer is the same whether it is signed or unsigned.
In Java, the compiler represents the signed integers using 2's complement notation. Therefore, in Example 2 above the input represents the signed integer -3 and the output represents the signed integer -1073741825.

32ビットの符号なしビットの数を入力します.彼をバイナリに変換する必要があります.符号ビットがないので、32ビットに拡張します.最後にこのバイナリ整数を返します.
ここでは啓発が複雑で,実際にはコードが簡単であることを理解する.配列スライスの知識も豊富になりました.
class Solution:
    def reverseBits(self, n: int) -> int:
        b = bin(n)[:1:-1]
        return int(b + '0'*(32-len(b)),2)

ここではスライス[:]の多重操作にかかわる.すべてのどのくらいの操作を記録します.スライス操作:list,tuple要素を切り取り操作し、非常に簡単です.L[0:3],L[:3]前の3つの要素を切り取ります.L[1:3]1から2つの要素を切り出す.L[-1]逆数の最初の要素を取り出します.L[-10:]取後10個数L[10:20]取前11-20個数L[:10:2]取前10個数、各2個毎に1個L[::5]全数、5個毎に1個L[:]1個list L[:1:1]をそのままコピーして0,1ビットを削除し、残りは反転する.
このスライス操作は前に習ったことが不完全で、実は本当に便利です!
int操作ではint(n,base=10)の後に進数が表示され、デフォルトでは10進数、ここでは2進数が表示されます.
疫病の中のイギリス、がんばれ!11/05/2020