Leetcode Reverse Bits Python python数组的高级裁切(切片)操作 | python[:]的多元操作 | 通过切片反转列表

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个数,每两个取一个
L[::5] 所有数,每5个取一个
L[:] 原样复制一个list
L[:1:-1] 删除掉0,1位,其余反转。

这个切片操作之前学的不够完整,其实真是太方便了!

int操作上,int(n,base=10),后面是表示进制的,默认10进制,这里是2表示2进制。

疫情中的英国,
加油!
11/05/2020

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值