通过将二进制字符串分成两部分来查找最高分数的程序在 Python 中
假设我们有一个二进制字符串s。现在让我们考虑一个操作,我们将字符串拆分为两个非空子字符串s1和s2。这个分裂的分数是s1中“0”计数的总和和s2中“1”计数的总和。我们必须找到我们可以获得的最大分数。
所以,如果输入像s="011001100111",那么输出将是8,因为我们可以像"01100"+"110111"这样拆分字符串。那么,分数是3+5=8。
示例
让我们看下面的实现来更好地理解
def solve(s): ones = s.count("1") zeros = 0 ans = 0 for i in range(len(s) - 1): if s[i] == "0": zeros += 1 else: ones -= 1 ans = max(ans, ones + zeros) return ans s = "011001100111" print(solve(s))
输入
"011001100111"输出结果
8