贪心法
交错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))