使用Map函数在Python中二进制字符串中连续1的最大长度

有时,当处理数字的二进制表示形式时,可能需要找出数字中存在多少个连续的1。本文介绍了两种方法来找出这一点。

使用分割和贴图

python中的split函数可用于将给定的字符串拆分为多个字符串。我们将其除以零,然后使用map函数在生成的分割中查找最大长度。

示例

data = '11110000111110000011111010101010101011111111'
def Max_len_cons_1(data):
print ("Maximum Number of consecutive one's: ",max(map(len,data.split('0'))) )
Max_len_cons_1(data)

输出结果

运行上面的代码给我们以下结果-

Maximum Number of consecutive one's: 8

使用正则表达式

python中的re模块还可以用于计算连续1的最大数量。在这里,我们找到1+的模式,它表示1的一个或多个数字。然后在这些样式中找到最大长度。

示例

data = '11110000111110010011'
import re
the_ones = re.findall(r"1+", data)
print("The blocks of one's: ",the_ones)
print("Maximum Number of consecutive one's =", len(max(the_ones, key=len)))

输出结果

运行上面的代码给我们以下结果-

The blocks of one's: ['1111', '11111', '1', '11']
Maximum Number of consecutive one's = 5