<分区>
在不使用特殊函数(数学、numpy 等)的情况下,检查十进制数在其二进制表示中是否只有一个“1”的最有效(在速度和空间方面)方法是什么?
例如1 是“001”,4 是“100”。
我试过了
binary = "{0:b}".format(value)
if binary.count('1') != 1:
return 1
else:
return 0
我相信这是空间 O(log n) 和速度 O(n)?有没有办法更有效地做到这一点?
标签 python-3.x
<分区>
在不使用特殊函数(数学、numpy 等)的情况下,检查十进制数在其二进制表示中是否只有一个“1”的最有效(在速度和空间方面)方法是什么?
例如1 是“001”,4 是“100”。
我试过了
binary = "{0:b}".format(value)
if binary.count('1') != 1:
return 1
else:
return 0
我相信这是空间 O(log n) 和速度 O(n)?有没有办法更有效地做到这一点?
最佳答案
其中一种方法可以是-
binary_num = '00101010'
result = [1 for x in binary_num if x == '1']
if len(result) == 1:
print('Success')
else:
print('Failed')
关于python-3.x - 检查十进制数的二进制表示是否只存在一个 '1' 的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58785739/