मान लीजिए हमारे पास s नामक कैरेक्टर्स का एक अनुक्रम है, हम कहते हैं कि एक स्ट्रिंग w k-दोहराव वाली स्ट्रिंग है यदि w को k बार जोड़ने पर वह अनुक्रम का सबस्ट्रिंग होता है। w का अधिकतम k-दोहराव मान वह उच्चतम मान k होगा जहां w अनुक्रम में k-दोहराव वाला है। और यदि w दिए गए अनुक्रम का सबस्ट्रिंग नहीं है, तो w का अधिकतम k-दोहराव मान 0 है। इसलिए यदि हमारे पास s और w है तो हमें अनुक्रम में w का अधिकतम k-दोहराव मान ढूंढना है।
इसलिए, यदि इनपुट है: s = "papaya", w = "pa", तो आउटपुट 2 होगा क्योंकि w = "pa" "papaya" में दो बार मौजूद है।
हल करने के चरण
- Count := s में मौजूद w की संख्या
- यदि Count == 0, तो 0 वापस करें
- i को Count से 0 तक, 1 से घटाते हुए:
- यदि w का i बार दोहराव s में मौजूद है, तो i वापस करें
उदाहरण (Python)
def solve(s, w):
Count = s.count(w)
if Count == 0:
return 0
for i in range(Count, 0, -1):
if w * i in s:
return i
s = "papaya"
w = "pa"
print(solve(s, w))
इनपुट
"papaya", "pa"
आउटपुट
2