检查一个数字的二进制表示在 Python 的块中是否有相同数量的 0 和 1
假设我们有一个数字 num,我们要检查 num 的二进制表示是否有相同数量的 0 和 1 连续块。我们必须记住,0 和全为 1 的数字不被视为具有 0 和 1 的块数。
因此,如果输入类似于 num = 455,那么输出将为 True,因为该数字的二进制表示为 111000111。
为了解决这个问题,我们将按照以下步骤操作 -
bin_form := num 的二进制形式
one_count := 一个新的集合
计数:= 1
对于范围 0 到 bin_form - 1 的位数的 i,请执行
将计数插入 one_count
计数:= 1
计数 := 计数 + 1
如果 bin_form[i] 与 bin_form[i + 1] 相同,则
否则,
如果 one_count 的大小与 1 相同,则
返回真
返回错误
让我们看看以下实现以获得更好的理解 -
示例代码
def solve(num):bin_form = bin(num).replace("0b", "")
one_count = set()
count = 1
for i in range(len(bin_form)-1):
if bin_form[i] == bin_form[i + 1]:
count += 1
else:
one_count.add(count)
count = 1
if len(one_count) == 1:
return True
return False
num = 455
print(solve(num))
输入
455输出结果
True
以上是 检查一个数字的二进制表示在 Python 的块中是否有相同数量的 0 和 1 的全部内容, 来源链接: utcz.com/z/358649.html