蓝桥杯—新手入门day10

10.填充

题目:蓝桥杯—新手入门day10_第1张图片

 解法:贪心

代码:

def max_non_overlapping_pairs(n, marked_indices):
    # 将标记为7的位置填充为0或1
    # 我们可以选择填充为0或1,使得不重叠的00和11子串最多
    # 这里我们选择填充为1,因为这样可以在每个标记位置之前和之后形成更多的11子串

    # 初始化结果数组
    result = [0] * n

    # 将标记为7的位置填充为1
    for index in marked_indices:
        result[index] = 1

    # 计算不重叠的00和11子串的数量
    count_00 = 0
    count_11 = 0

    # 遍历结果数组,计算00和11子串的数量
    for i in range(n):
        if i > 0 and result[i] == 0 and result[i-1] == 0:
            count_00 += 1
        elif i > 0 and result[i] == 1 and result[i-1] == 1:
            count_11 += 1

    # 返回子串的数量
    return count_00 + count_11

# 示例输入
n = 7
marked_indices = [1, 3, 5]

# 调用函数并打印结果
result = max_non_overlapping_pairs(n, marked_indices)
print(result)

你可能感兴趣的:(蓝桥杯,python,新手入门,每日一题,算法)