小编Bar*_*bus的帖子

为什么这个正则表达式与第二个二进制间隙不匹配?

尝试上市问题的解决这里的蟒蛇,我想我会尝试一个可爱的小正则表达式来捕获的最大"二元鸿沟"(在一个数字的二进制表示零的链).

我为这个问题写的函数如下:

def solution(N):
    max_gap = 0
    binary_N = format(N, 'b')
    list = re.findall(r'1(0+)1', binary_N)

    for element in list:
        if len(element) > max_gap:
            max_gap = len(element)

    return max_gap
Run Code Online (Sandbox Code Playgroud)

它运作得很好.但是......由于某种原因,它与10000010000000001(二进制表示66561)中的第二组零不匹配.9个零没有出现在匹配列表中,因此它必须是正则表达式的问题 - 但我无法看到它在哪里,因为它匹配给定的每个其他示例!

python regex

3
推荐指数
1
解决办法
444
查看次数

标签 统计

python ×1

regex ×1