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

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


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

उदाहरण के लिए, यदि इनपुट colors = ["G", "R", "G", "B", "R"] है, तो आउटपुट 1 होगा क्योंकि यह नीचे दिखाए अनुसार बदल सकता है:

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

समाधान दृष्टिकोण

इस समस्या को हल करने के लिए हम XOR ऑपरेशन का उपयोग करेंगे:

  • n := colors का आकार
  • यदि colors में केवल एक विशिष्ट रंग है, तो n लौटाएं
  • यदि n <= 1 है, तो n लौटाएं
  • x := 0
  • d := की-वैल्यू पेयर वाला मैप: {("R", 1), ("G", 2), ("B", 3)}
  • colors में प्रत्येक c के लिए: x := x XOR d[c]
  • यदि x == 0 है तो 2 लौटाएं अन्यथा 1

पायथन कार्यान्वयन

class Solution:
    def solve(self, colors):
        n = len(colors)
        if len(set(colors)) == 1:
            return n
        if n <= 1:
            return n
        x = 0
        d = {"R": 1, "G": 2, "B": 3}
        for qux in colors:
            x ^= d[qux]
        return 2 if x == 0 else 1

ob = Solution()
colors = ["G", "R", "G", "B", "R"]
print(ob.solve(colors))

इनपुट

["G", "R", "G", "B", "R"]

आउटपुट

1
  1. - पायथन में सभी A को B से पहले लाने के लिए न्यूनतम डिलीशन गिनने का प्रोग्राम

    केवल A और B से बनी स्ट्रिंग s दी गई है। न्यूनतम कितने वर्ण हटाएं ताकि सभी A सभी B से पहले आ जाएं (यानी स्ट्रिंग A...AB...B रूप में हो)। उदाहरण इनपुट: S = AABAABB आउटपुट: 1 व्याख्या: अंतिम A हटाएं → AABBBB। एल्गोरिदम (प्रीफिक्स-सफिक्स काउंट) a_right = स्ट्रिंग में कुल A की संख्या। b_left = 0, ans

  1. - पायथन में गंतव्य तक पहुंचने के लिए ऊंचाई बढ़ाने की न्यूनतम कुल मात्रा खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक मैट्रिक्स M है जहां M[r][c] उस सेल की ऊंचाई दर्शाता है। यदि हम वर्तमान में ऊपरी बाएं कोने पर हैं और निचले दाएं कोने पर जाना चाहते हैं। हम आसन्न सेल (ऊपर, नीचे, बाएं, दाएं) पर तभी जा सकते हैं जब उस आसन्न सेल की ऊंचाई वर्तमान सेल की ऊंचाई से कम या बराबर हो। हम चलने से पहले किसी

  1. पायथन प्रोग्राम: संख्या के फैक्टर्स का न्यूनतम योग ढूंढें पायथन प्रोग्राम: संख्या के फैक्टर्स का न्यूनतम योग ढूंढें

    इस लेख में, हम नीचे दिए गए प्रॉब्लम स्टेटमेंट के समाधान के बारे में सीखेंगे: प्रॉब्लम स्टेटमेंट एक नंबर इनपुट दिए जाने पर, दी गई संख्या के फैक्टर्स का न्यूनतम योग ढूंढें। यहां हम सभी फैक्टर्स और उनके संबंधित योग की गणना करेंगे और फिर उनमें से न्यूनतम ढूंढेंगे। तो संख्या के गुणनफल का न्यूनतम योग ढू