📜  检查字符串是否有m个连续的1或0(1)

📅  最后修改于: 2023-12-03 15:10:52.865000             🧑  作者: Mango

检查字符串是否有m个连续的1或0

如果您需要在字符串中检查是否存在连续的1或0,可以通过以下几种方法实现。

方法一:正则表达式

使用正则表达式可以检查字符串中是否存在m个连续的1或0。以下是一个简单的程序示例:

import re

def check_string_for_consecutive_numbers(input_str, m, number):
    # Input: input_str - 输入字符串, m - 连续数字的个数, number - 检查的数字(0或1)
    pattern = number * m
    match = re.search(pattern, input_str)
    if match:
        print("字符串中存在" + str(m) + "个连续的" + str(number) + "。")
    else:
        print("字符串中不存在" + str(m) + "个连续的" + str(number) + "。")

# 示例输入字符串
input_str = "0000111100001111000001111"
# 检查是否有4个连续的0
check_string_for_consecutive_numbers(input_str, 4, 0) 
# 检查是否有3个连续的1
check_string_for_consecutive_numbers(input_str, 3, 1) 

该程序将检查输入字符串中是否存在m个连续的数字number(0或1),并打印结果。

方法二:循环遍历字符串

通过循环遍历字符串,可以遍历所有可能的m个连续数字组合,并检查它们是否与指定的数字匹配。以下是一个简单的程序示例:

def check_string_for_consecutive_numbers(input_str, m, number):
    # Input: input_str - 输入字符串, m - 连续数字的个数, number - 检查的数字(0或1)
    count = 0
    for i in input_str:
        # 如果i与要检查的数字相同,增加count,否则将count重置为0
        if int(i) == number:
            count += 1
        else:
            count = 0
        # 如果count等于m,表示存在m个连续的数字number,返回True
        if count == m:
            return True
    # 如果循环结束后未发现m个连续的数字number,返回False
    return False

# 示例输入字符串
input_str = "0000111100001111000001111"
# 检查是否有4个连续的0
if check_string_for_consecutive_numbers(input_str, 4, 0):
    print("字符串中存在4个连续的0。")
else:
    print("字符串中不存在4个连续的0。")
# 检查是否有3个连续的1
if check_string_for_consecutive_numbers(input_str, 3, 1):
    print("字符串中存在3个连续的1。")
else:
    print("字符串中不存在3个连续的1。")

该程序将检查输入字符串中是否存在m个连续的数字number(0或1),并打印结果。

无论您使用哪种方法,以上两段程序都能解决这个问题。如果您需要在代码中使用正则表达式,可以使用Python的re模块。如果您想要更简单直观的代码,可以使用循环遍历字符串的方法。