मान लीजिए कि हमारे पास वर्णों का एक क्रम है जिसे s कहा जाता है, हम कहते हैं कि एक स्ट्रिंग w k-दोहराई जाने वाली स्ट्रिंग है यदि w को संयोजित किया गया है तो k बार अनुक्रम का एक विकल्प है। w का अधिकतम k-पुनरावृत्ति मान उच्चतम मान k होगा जहां w क्रम में k-पुनरावृत्ति है। और यदि w दिए गए अनुक्रम का विकल्प नहीं है, तो w का अधिकतम k-दोहराव मान 0 है। इसलिए यदि हमारे पास s और w हैं तो हमें क्रम में w का अधिकतम k-दोहराव मान ज्ञात करना होगा।
इसलिए, यदि इनपुट s ="पपीता" w ="pa" जैसा है, तो आउटपुट 2 होगा क्योंकि w ="pa" "पपीता" में दो बार मौजूद है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
गणना:=s में मौजूद w की संख्या
-
अगर काउंट 0 के समान है, तो
-
वापसी 0
-
-
मैं के लिए रेंज में काउंट से 0, 1 से घटाएं, करें
-
अगर मैं w की पुनरावृत्ति s में मौजूद है, तो
-
वापसी मैं
-
-
उदाहरण (पायथन)
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
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