gpt4 book ai didi

python - 将给定的十进制数转换为二进制数并计算连续的 1 并显示

转载 作者:行者123 更新时间:2023-11-28 20:03:22 27 4
gpt4 key购买 nike

问题:将给定的十进制数转换为二进制数并计算连续的1并显示

示例案例 1:5的二进制表示为101,所以连续1的最大个数为1。

示例案例 2:13的二进制表示为1101,所以连续1的最大个数为2。

解决方法:

#!/bin/python3

import sys


n = int(input().strip())
result = []
counter = 1
def get_binary(num):
if num == 1:
result.append(num)
adj(result)
else:
result.append(num%2)
get_binary(int(num/2))

def adj(arr):
global counter
for x in range(0,len(arr)-1):
if arr[x] == 1 and (arr[x] == arr[x+1]):
counter += 1
print(counter)

get_binary(n)

它没有通过所有示例测试用例。我做错了什么?

最佳答案

下面是一个有效的简化版本

def func(num):
return max(map(len, bin(num)[2:].split('0')))
  • 将整数转换为二进制表示bin(num)

  • 从二进制表示中去除 0b bin(num)[:2]

  • 在字符 0 处拆分字符串 bin(num)[2:].split('0')

  • 找到最大长度的字符串并返回数字

关于python - 将给定的十进制数转换为二进制数并计算连续的 1 并显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41494491/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com