|
发表于 2020-3-7 22:53:48
|
显示全部楼层
没考虑0的情况,现在呢?- from itertools import groupby
- def fun345(num):
- if num==0:return 1
- t=[]
- for k,v in groupby(bin(num)[2:]):
- t.append(len(list(v)))
- if len(t)==1 or len(t)==2:return t[0]+1
- count,result=0,0
- if bin(num)[-1]=='1':
- for i in range(1,len(t),2):
- if t[i]==1:
- result=max(count,t[i-1]+t[i+1]+1)
- count=result
- else:
- result=max(count,t[i-1]+1,t[i+1]+1)
- count=result
- else:
- for i in range(1,len(t)-1,2):
- if t[i]==1:
- result=max(count,t[i-1]+t[i+1]+1)
- count=result
- else:
- result=max(count,t[i-1]+1,t[i+1]+1)
- count=result
- return result
复制代码 |
评分
-
查看全部评分
|