检查十进制数的二进制表示形式中是否仅存在一个'1'的最有效方法



在不使用特殊函数(math、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')

相关内容

  • 没有找到相关文章

最新更新