在Python中进行一次0翻转后,在二进制字符串中查找最长子串长度为1的程序
假设我们有一个二进制字符串s。我们最多可以将一个“0”翻转为“1”,我们必须找到最长连续子串的长度1。
所以,如果输入像s="1010110001",那么输出将是4,就好像我们翻转索引3处的零,然后我们得到字符串"1011110001",这里1s的最长子串的长度是4.
示例
让我们看看以下实现以获得更好的理解-
def solve(s):
n = len(s)
ans = ones = left = right = 0
while right < n:
if s[right] == "1":
ones += 1
while right - left + 1 - ones > 1:
remove = s[left]
if remove == "1":
ones -= 1
left += 1
ans = max(ans, right - left + 1)
right += 1
return ans
s = "1010110001"
print(solve(s))输入
"1010110001"输出结果
4
热门推荐
10 小红书平安祝福语简短
11 生日祝福语大全女孩简短
12 收生日红包祝福语 简短
13 领证幽默祝福语简短
14 法考面试祝福语简短
15 老哥出门祝福语简短语
16 送灯祝福语简短独特
17 幼儿狗年祝福语大全简短
18 好听的元旦简短祝福语