通过将二进制字符串分成两部分来查找最高分数的程序在 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

以上是 通过将二进制字符串分成两部分来查找最高分数的程序在 Python 中 的全部内容, 来源链接: utcz.com/z/338632.html

回到顶部