Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में पैलिंड्रॉम बनाने के लिए जोड़े जाने वाले न्यूनतम वर्णों की संख्या ज्ञात करने का प्रोग्राम


मान लीजिए हमारे पास एक स्ट्रिंग s है। हमें s के बाद जोड़े जाने वाले न्यूनतम वर्णों की संख्या ज्ञात करनी है ताकि यह एक पैलिंड्रॉम बन जाए।

उदाहरण के लिए, s = "mad" के लिए आउटपुट 2 होगा ( "am" जोड़कर "madam" बनाएं)।

एल्गोरिदम (रोलिंग हैश)

  • b=256, m=10^9+7
  • s := [ord(ch)-97 for ch in s]
  • r = l = s[-1], n = len(s), res = n-1, p = b
  • i = n-2 से 0 तक:
    • r = (r + s[i]*p) % m
    • l = (l*b + s[i]) % m
    • p = (p*b) % m
    • यदि l == r, तो res = i
  • res वापस करें

उदाहरण

class Solution:
    def solve(self, s):
        b = 256
        m = 10**9+7
        s = [ord(ch)-97 for ch in s]
        r = l = s[-1]
        n = len(s)
        res = n-1
        p = b
        for i in range(n-2, -1, -1):
            r = (r + s[i]*p) % m
            l = (l*b + s[i]) % m
            p = (p*b) % m
            if l == r: res = i
        return res

ob = Solution()
s = "mad"
print(ob.solve(s))

इनपुट

"mad"

आउटपुट

2
  1. पायथन में मर्जिंग के बाद न्यूनतम रंगों की संख्या खोजने का प्रोग्राम पायथन में मर्जिंग के बाद न्यूनतम रंगों की संख्या खोजने का प्रोग्राम

    मान लीजिए हमारे पास रंगों (R, G, B) की एक लिस्ट है। अब यदि दो अलग-अलग रंग अगल-बगल हैं तो वे तीसरे रंग के एकल रंग आइटम में बदल सकते हैं। हमें किसी भी संभावित परिवर्तन अनुक्रम के बाद शेष सबसे छोटी संख्या ढूंढनी है।उदाहरण के लिए, यदि इनपुट colors = [G, R, G, B, R] है, तो आउटपुट 1 होगा क्योंकि यह नीचे द

  1. - पायथन में एक संख्या को दूसरी संख्या में बदलने के लिए आवश्यक न्यूनतम संक्रियाओं की संख्या खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक संख्या start और एक अन्य संख्या end है (start < end), हमें start को end में बदलने के लिए आवश्यक न्यूनतम संक्रियाओं की संख्या ढूंढनी है इन संक्रियाओं का उपयोग करके: 1 से बढ़ाएं 2 से गुणा करें उदाहरण के लिए, यदि इनपुट है start = 5, end = 11, तो आउटपुट होगा 2, क्योंकि हम 2 से ग

  1. - पायथन में एक स्ट्रिंग को दूसरी स्ट्रिंग का सबस्ट्रिंग बनाने के लिए आवश्यक न्यूनतम संक्रियाओं की संख्या खोजने का प्रोग्राम

    मान लीजिए हमारे पास दो स्ट्रिंग्स s और t हैं, हमें s के लिए आवश्यक न्यूनतम संक्रियाओं की मात्रा ढूंढनी है ताकि t, s का सबस्ट्रिंग बन जाए। अब, प्रत्येक संक्रिया में, हम s में किसी भी स्थिति को चुन सकते हैं और उस स्थिति के वर्ण को किसी अन्य वर्ण में बदल सकते हैं। उदाहरण के लिए, यदि इनपुट है s = abbpq