贪心法

题意很清楚,只需要遍历一遍,记录从位置 开始,可以构成交错 串的长度,输出所有长度的最大值就可以了。
遍历的时候并不需要在每个位置 都检查 串,只需要从上一个 串结尾的下一个位置开始遍历就可以了。
实现的时候用迭代的话,嵌套循环逻辑不是很清晰,建议可以用递归实现。

s = input()
s = list(map(int, s))

# res记录每个位置的交错01串长度
res = []

def cross(s, index, size):
    if index == size:
        return

    i = index
    last = ~s[i]

    # 贪心找出01串的结尾
    while i < size and s[i] != last:
        last = s[i]
        i += 1

    # 记录找到的长度
    res.append(i-index)
    cross(s,index+1,size)

cross(s,0,len(s))
print(max(res))