मान लीजिए कि हमारे पास एक बाइनरी स्ट्रिंग है। हमें उन सबस्ट्रिंग्स की संख्या ज्ञात करनी है जिनमें केवल "1" है। अगर उत्तर बहुत बड़ा है, तो परिणाम को 10^9+7 से संशोधित करें।
इसलिए, यदि इनपुट s ="100111" जैसा है, तो आउटपुट 7 होगा, क्योंकि केवल "1" वाले सबस्ट्रिंग ["1", "1", "1", "1", "11" हैं। , "11" और "111"]
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- a :=0
- गिनती :=0
- i के लिए 0 से लेकर s-1 के आकार तक के लिए
- यदि s[i] "0" के समान है, तो
- a :=0
- अन्यथा,
- a :=a + 1
- गिनती:=गिनती + ए
- यदि s[i] "0" के समान है, तो
- वापसी की संख्या
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
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