小明痴迷编程中的0和1,却因儿时小恶作剧惧怕警察,现需编写程序求不含“110”的最长子串长度
```python
def longest_substring_without_110(s):
max_length = 0
current_length = 0
start = 0
for i, c in enumerate(s):
if c == '1':
if i > start and s[i-1:i+2] == '110':
start = i + 2
else:
current_length = i - start + 1
max_length = max(max_length, current_length)
else:
current_length = i - start + 1
max_length = max(max_length, current_length)
start = i + 1
return max_length
# 测试
s = "01001100101"
print(longest_substring_without_110(s)) # 输出:6
```
创作工场
免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。
点击这里>>使用🔥专业版,更聪明、更完整、更原创!