मान लीजिए कि हमारे पास एक स्ट्रिंग s है, तो हमें s के बाएँ और दाएँ पक्षों को ट्रिम करके पैलिंड्रोम प्राप्त करने के तरीकों की संख्या ज्ञात करनी होगी।
इसलिए, यदि इनपुट s ="मोमो" जैसा है, तो आउटपुट 6 होगा, जैसा कि आप ["mom", "omo", "o", "o", "m", "m", " ओ")
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
एक फ़ंक्शन को विस्तृत करें () परिभाषित करें। इसमें i, j, s
. लगेगा -
सी :=0
-
जबकि i>=0 और j
-
मैं :=i − 1, j :=j + 1
-
सी:=सी + 1
-
-
वापसी ग
-
मुख्य विधि से, निम्न कार्य करें
-
सी :=0
-
मैं के लिए 0 से s के आकार की सीमा में, ऐसा करें
-
c :=c + विस्तृत करें (i, i, s)
-
c :=c + विस्तृत करें (i, i + 1, s)
-
-
वापसी ग
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
def expand(i, j, s): c = 0 while i >= 0 and j < len(s) and s[i] == s[j]: i −= 1 j += 1 c += 1 return c class Solution: def solve(self, s): c = 0 for i in range(len(s)): c += expand(i, i, s) c += expand(i, i + 1, s) return c ob = Solution() s = "momo" print(ob.solve(s))
इनपुट
"momo"
आउटपुट
6