原始问题:
小明痴迷于0和1,却因害怕110而发愁:如何计算不含110的最长子串长度?
def longest_substring_without_110(s):
max_length = 0
current_length = 0
last_index = -1
for i, c in enumerate(s):
if c == '1' and (i > 0 and s[i - 1] == '1') or c == '0' and (i > 1 and s[i - 2] == '0'):
if i - last_index > max_length:
max_length = i - last_index
current_length = 0
last_index = i
else:
current_length += 1
return max_length + current_length
s = input("请输入一个01串:")
print("不包含110的最长子串长度为:", longest_substring_without_110(s))
Prev:小明痴迷编程中的0和1,却因儿时小恶作剧惧怕警察,现需编写程序求不含“110”的最长子串长度