使用Python以二进制形式查找数字的最长距离的程序
假设我们有一个数字N,我们必须找到它的二进制表示中两个连续1之间的最长距离。如果没有两个连续的1,则返回0。
所以,如果输入像71,那么输出将是4,因为71在二进制中是1000111。现在有四个,第一个1和第二个1的距离为4。所有其他的都相距一个距离。所以这里最长的距离是4。
为了解决这个问题,我们将按照以下步骤操作-
K:=制作N的二进制表示的位列表
最大值:=0,C:=0,S:=0
标志:=假
对于范围0到K大小的i,请执行
S:=我
如果Max
C:=S
最大值:=|SC|
C:=我
标志:=真
如果K[i]为'1'且C为0且Flag为False,则
否则,当K[i]为'1'且为Flag时,则
返回最大值
让我们看看以下实现以获得更好的理解-
示例
def solve(N):
B = bin(N).replace('0b','')
K = str(B)
K = list(K)
Max = 0
C = 0
S = 0
Flag = False
for i in range(len(K)):
if K[i] is '1' and C is 0 and Flag is False:
C = i
Flag = True
elif K[i] is '1' and Flag:
S = i
if Max输入
71
输出结果4
热门推荐
10 医院探望朋友祝福语简短
11 毕业祝福语简短女朋友
12 春节虎年爸妈祝福语简短
13 儿童毕业祝福语 简短6
14 开工仪式横幅祝福语简短
15 孩子日常祝福语大全简短
16 清晨寄语诗句祝福语简短
17 结婚送亲认亲祝福语简短
18 虎年喝酒拜年祝福语简短