假设我们有一个二进制字符串 s。我们必须找到只包含“1”的子串的数量。如果答案太大,将结果修改为 10^9+7。
所以,如果输入像 s = "100111",那么输出将是 7,因为只包含 "1" 的子串是 ["1", "1", "1", "1", "11" , "11" 和 "111"]
让我们看看以下实现以获得更好的理解 -
def solve(s): a = 0 count = 0 for i in range(len(s)): if s[i] == "0": a = 0 else: a += 1 count += a return count s = "100111" print(solve(s))
"100111"输出结果
7