मान लीजिए हमारे पास एक स्ट्रिंग s और एक वर्ण c है। हमें यह जांचना है कि क्या c की सभी घटनाएं s में एक साथ (consecutive) दिखाई देती हैं या नहीं। यदि वर्ण c, s में मौजूद नहीं है तो भी True लौटाएं।
उदाहरण के लिए, यदि इनपुट s = "bbbbaaaaaaaccddd", c = 'a' है, तो आउटपुट True होगा।
समाधान दृष्टिकोण
हम स्ट्रिंग को पार करते हैं। जब पहली बार c मिलता है, तो हम फ्लैग सेट करते हैं और सभी लगातार c को छोड़ देते हैं। यदि फ्लैग सेट होने के बाद फिर से c मिलता है, तो False लौटाते हैं।
एल्गोरिदम चरण:
flag = False,index = 0,n = len(string)- जब
index < n: - यदि
string[index] == c: - यदि
flag == True, तो False लौटाएं - जब तक
string[index] == c,indexबढ़ाएं flag = Trueसेट करें- अन्यथा
indexबढ़ाएं - True लौटाएं
पायथन कार्यान्वयन
def solve(string, c):
flag = False
index = 0
n = len(string)
while index < n:
if string[index] == c:
if flag:
return False
while index < n and string[index] == c:
index += 1
flag = True
else:
index += 1
return True
s = "bbbbaaaaaaaccddd"
c = 'a'
print(solve(s, c)) # True
इनपुट
"bbbbaaaaaaaccddd", "a"
आउटपुट
True
व्याख्या:
स्ट्रिंग में 'a' का ब्लॉक "aaaaaa" एक साथ है। कोई अन्य 'a' अलग से नहीं है।