[Codility] lesson 1:binary gap

本文详细解析了二进制间隙算法,通过将十进制数转换为二进制数,然后找出最长的两个1之间的0序列长度。利用Python的bin()函数进行转换,并通过索引记录0和1的位置,实现高效计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[Codility] lesson 1: binary gap

思路

  1. 利用bin()函数将十进制转换为二进制
  2. 利用索引来记录转换后的‘0’和‘1’

算法


def binarygap(N):
	#十进制转为二进制,并利用切片去除开头的0b
	a=str(bin(N))[2:]
	b=0
	count_0=0
	for i in range(len(a)):
		#记录连续0的个数
		if a[i]=='0':
			count_0+=1
		elif a[i]=='1':
			b=max(b,count_0)
			#遇到一个新的1,要给count_0重新赋值0
			count_0=0
	return(b)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值