leetcode遇到191. 位1的个数,输入的是二进制32位的形式,看官方解法用了bin()。
bin(x)的参数x可以是普通的十进制数,也可以是32位的二进制。教程常见的是前者,直接把十进制转换成str,前面是0b(零b),比如:
bin(250)
Out[1]: '0b11111010'
像leetcode这道题用了32位二进制数,bin(x)会得到:
观察后发现bin(x)把x前面的零给去掉了,从遇到的第一个1开始保留后面的。
当然leetcode这一题用位运算符解也是可以的。