python-3.x - 检查十进制数的二进制表示是否只存在一个 '1' 的最有效方法

标签 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/

相关文章:

python - 多重继承自 QObject 和 QRunnable 错误

Python for 循环操作列表并删除曾经使用过的元素

python - 如何在 Python 3 中用两行代码分解一个打印命令

python - Opencv2和python——cv2检测不同的RGB值

python - if 语句的语法无效

python-3.x - 来自 Pandas 数据框的有向加权图

python - 具有选择条件的 Pandas 数据框中的有效最大选择

python-3.x - Jupyter Lab 中的 ipyparallel 并行函数调用示例

python - 使用 setuptools – data_files 创建 deb 或 rpm

python - 如何使用对象比较函数反转 heapq 堆中元素的顺序?