最有效的方法来检查十进制数字的二进制表示中是否只有一个'1'[重复]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最有效的方法来检查十进制数字的二进制表示中是否只有一个'1'[重复]相关的知识,希望对你有一定的参考价值。
此问题已经在这里有了答案:
在不使用特殊功能(数学,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)?有没有一种方法可以更有效地做到这一点?
最有效(在速度和空间方面)的方法来检查十进制数是否在其二进制表示中仅具有单个'1'而不使用特殊功能(数学,numpy等)?例如...
答案
其中一种方法可以是-
binary_num = '00101010'
result = [1 for x in binary_num if x == '1']
if len(result) == 1:
print('Success')
else:
print('Failed')
以上是关于最有效的方法来检查十进制数字的二进制表示中是否只有一个'1'[重复]的主要内容,如果未能解决你的问题,请参考以下文章