栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python:在整数的二进制表示形式中找到最长的二进制间隙

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python:在整数的二进制表示形式中找到最长的二进制间隙

您的实现将整数转换为以2为底的字符串,然后访问字符串中的每个字符。相反,您可以使用

<<
和来访问整数中的每个位
&
。这样做将避免访问每个位两次(首先将其转换为字符串,然后检查结果字符串中是否为“
1”)。它还将避免为该字符串分配内存,然后为您检查的每个子字符串分配内存。

您可以通过访问1 << 0,1 << 1,…,1 <<(x.bit_length)来检查整数的每个位。

例如:

def max_gap(x):    max_gap_length = 0    current_gap_length = 0    for i in range(x.bit_length()):        if x & (1 << i): # Set, any gap is over. if current_gap_length > max_gap_length:     max_gap_length = current_gap_length current_gap_length = 0         else: # Not set, the gap widens. current_gap_length += 1    # Gap might end at the end.    if current_gap_length > max_gap_length:        max_gap_length = current_gap_length    return max_gap_length


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/516897.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号