在 Python 中計算二進位制字串中包含全 1 子字串數量的程式
假設我們有二進位制字串 s。我們必須找到僅包含 "1" 的子字串的數量。如果答案太大,則對結果取 10^9+7 的模。
因此,如果輸入如下 s = "100111",則輸出將為 7,因為僅包含 "1" 的子字串為 ["1", "1", "1", "1", "11", "11" 和 "111"]
要解決此問題,我們將遵循以下步驟 −
- a := 0
- count := 0
- 對於 i 的範圍是 0 到 s 的大小 - 1,執行
- 如果 s[i] 與 "0" 相同,則
- a := 0
- 否則,
- a := a + 1
- count := count + a
- 如果 s[i] 與 "0" 相同,則
- 返回 count
示例
讓我們看看以下實現以獲得更好的理解 −
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
廣告