贪心法
交错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))
海康威视公司福利 1125人发布