मान लीजिए हमारे पास केवल दो वर्णों a और b वाली एक लोअरकेस स्ट्रिंग s है। हमें जांचना है कि क्या लगातार a का हर समूह समान लंबाई के लगातार b के समूह द्वारा अनुसरण किया जाता है।
इसलिए, यदि इनपुट s = "abaaabbbaabbaabbab" है, तो आउटपुट True होगा, क्योंकि सभी समूह हैं (ab), (aaabbb), (aabb), (aabb), (ab)।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:
- a_count := 0, string_len := s का आकार
- i := 0
- जब i < string_len हो, तब तक करें
- जब i < string_len और s[i] 'a' हो, तब तक करें
- a_count := a_count + 1
- i := i + 1
- जब i < string_len और s[i] 'b' हो, तब तक करें
- a_count := a_count - 1
- i := i + 1
- यदि a_count 0 नहीं है, तो
- False लौटाएं
- जब i < string_len और s[i] 'a' हो, तब तक करें
- True लौटाएं
उदाहरण
बेहतर समझ के लिए निम्न कार्यान्वयन देखें:
def solve(s):
a_count = 0
string_len = len(s)
i = 0
while i < string_len:
while i < string_len and s[i] == 'a':
a_count += 1
i += 1
while i < string_len and s[i] == 'b':
a_count -= 1
i += 1
if a_count != 0:
return False
return True
s = "abaaabbbaabbaabbab"
print(solve(s))
इनपुट
"abaaabbbaabbaabbab"
आउटपुट
True