贪心法

交错01串

http://www.nowcoder.com/questionTerminal/3fbd8fe929ea4eb3a254c0ed34ac993a

贪心法

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

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))
全部评论

相关推荐

2024-12-23 06:50
门头沟学院 Java
给点吧求求了:3点发的帖子,害怕😰
点赞 评论 收藏
分享
2024-12-23 10:55
已编辑
大连理工大学 Java
牛客930504082号:华子综测不好好填会挂的,而且填的时候要偏向牛马选项
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务