मान लीजिए कि हमारे पास एक बाइनरी स्ट्रिंग s और दूसरा मान m है, तो हमें यह जांचना होगा कि स्ट्रिंग में m लगातार 1 है या m लगातार 0 है।
इसलिए, यदि इनपुट s ="1110111000111", m =3 जैसा है, तो आउटपुट सही होगा क्योंकि तीन क्रमागत 0s और 1s हैं।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- str_size :=s का आकार
- गिनती_0:=0, गिनती_1:=0
- मैं के लिए 0 से str_size - 2 की सीमा में, करते हैं
- यदि s[i] '0' के समान है, तो
- गिनती_1 :=0
- गिनती_0 :=गिनती_0 + 1
- अन्यथा,
- गिनती_0:=0
- गिनती_1 :=गिनती_1 + 1
- यदि count_0 m के समान है या count_1 m के समान है, तो
- सही लौटें
- यदि s[i] '0' के समान है, तो
- झूठी वापसी
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
def solve(s, m): str_size = len(s) count_0 = 0 count_1 = 0 for i in range(0, str_size - 1): if (s[i] == '0'): count_1 = 0 count_0 += 1 else : count_0 = 0 count_1 += 1 if (count_0 == m or count_1 == m): return True return False s = "1110111000111" m = 3 print(solve(s, m))
इनपुट
"1110111000111", 3
आउटपुट
True