मान लीजिए हमारे पास एक स्ट्रिंग s है। हमें यह जांचना है कि क्या स्ट्रिंग a^n b^n पैटर्न का पालन करती है या नहीं। यह वास्तव में एक स्ट्रिंग है जहां n=3 के लिए स्ट्रिंग "aaabbb" होगी।
उदाहरण के लिए, यदि इनपुट s = "aaaaabbbbb" है, तो आउटपुट True होगा क्योंकि यह a^5 b^5 का पालन करता है।
समाधान दृष्टिकोण
स्ट्रिंग में पहले कुछ 'a' होने चाहिए, फिर उतने ही 'b' होने चाहिए। कोई अन्य वर्ण नहीं होना चाहिए।
एल्गोरिदम चरण:
size = len(s)iके लिए 0 से size-1 तक:- यदि
s[i] != 'a', तो लूप तोड़ें - यदि
i * 2 != size, तो False लौटाएं (a और b की संख्या बराबर नहीं) jके लिएiसेsize-1तक:- यदि
s[j] != 'b', तो False लौटाएं - True लौटाएं
पायथन कार्यान्वयन
def solve(s):
size = len(s)
i = 0
for i in range(size):
if s[i] != 'a':
break
if i * 2 != size:
return False
for j in range(i, size):
if s[j] != 'b':
return False
return True
s = "aaaaabbbbb"
print(solve(s)) # True
इनपुट
"aaaaabbbbb"
आउटपुट
True
व्याख्या:
"aaaaabbbbb" में:
- 5 'a' (इंडेक्स 0-4)
- 5 'b' (इंडेक्स 5-9)
- कुल लंबाई 10 = 2 × 5 ✓
- पैटर्न
a^5 b^5✓
किनारे के मामले:
""(खाली स्ट्रिंग) - n=0 के लिए वैध माना जा सकता है"ab"- True (a¹b¹)"aab"- False (लंबाई 3, विषम)"aabbc"- False (c मौजूद है)