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

पायथन में सबसे छोटी संख्या बनाएं जहां कोई दो आसन्न अंक समान न हों

मान लीजिए हमारे पास चार संभावित वर्णों "1", "2", "3" और "?" के साथ एक स्ट्रिंग s है। हम "?" के स्थान पर "1", "2" और "3" में से कोई एक रख सकते हैं। हमें सबसे छोटी संभव संख्या ढूंढनी है जिसे हम बना सकते हैं जैसे कि कोई दो आसन्न अंक समान न हों।

इसलिए, यदि इनपुट है s = "2??3?", तो आउटपुट होगा 21231।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:

  • i := 0
  • s := s से तत्वों की एक सूची
  • यदि s का आकार < 2, तो:
    • यदि s[i] "?" के समान है, तो:
      • "1" लौटाएं
  • जब i < s का आकार, करें:
    • यदि s[i] "?" के समान है, तो:
      • यदि i 0 के समान है, तो:
        • s[i] := "1" जब s[i + 1] "1" नहीं है अन्यथा "2"
      • अन्यथा जब i > 0 और i <= s का आकार - 2, तो:
        • यदि s[i - 1] "1" के समान है, तो:
          • यदि s[i + 1] "2" के समान है, तो:
            • s[i] := "3"
          • अन्यथा:
            • s[i] := "2"
        • अन्यथा जब s[i - 1] "2" के समान है, तो:
          • यदि s[i + 1] "1" के समान है, तो:
            • s[i] := "3"
          • अन्यथा:
            • s[i] := "1"
        • अन्यथा जब s[i - 1] "3" के समान है, तो:
          • यदि s[i + 1] "1" के समान है, तो:
            • s[i] := "2"
          • अन्यथा:
            • s[i] := "1"
      • अन्यथा:
        • s[i] := "1" जब s[i - 1] "1" नहीं है अन्यथा "2"
      • i := i + 1
    • s के आइटम को स्ट्रिंग में जोड़ें और लौटाएं

    उदाहरण

    बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:

    def solve(s):
        i = 0
        s = list(s)
        if len(s) < 2:
            if s[i] == "?":
                return "1"
        while i < len(s):
            if s[i] == "?":
                if i == 0:
                    s[i] = "1" if s[i + 1] != "1" else "2"
                elif i > 0 and i <= len(s) - 2:
                    if s[i - 1] == "1":
                        if s[i + 1] == "2":
                            s[i] = "3"
                        else:
                            s[i] = "2"
                    elif s[i - 1] == "2":
                        if s[i + 1] == "1":
                            s[i] = "3"
                        else:
                            s[i] = "1"
                    elif s[i - 1] == "3":
                        if s[i + 1] == "1":
                            s[i] = "2"
                        else:
                            s[i] = "1"
                else:
                    s[i] = "1" if s[i - 1] != "1" else "2"
            i += 1
        return "".join(s)
    s = "2??3?"
    print(solve(s))

    इनपुट

    "2??3?"

    आउटपुट

    21231
  1. दो पत्तियों के लीफ अनुक्रम समान हैं या नहीं जांचने का पायथन प्रोग्राम दो पत्तियों के लीफ अनुक्रम समान हैं या नहीं जांचने का पायथन प्रोग्राम

    मान लीजिए हमारे पास दो बाइनरी ट्री हैं; हमें जांचना है कि क्या दोनों ट्री में बाएं से दाएं लीफ का अनुक्रम समान है। उदाहरण के लिए, यदि इनपुट इस तरह है: तो आउटपुट True होगा क्योंकि दोनों ट्री के लिए अनुक्रम [2, 6] है। इसे हल करने के लिए, हम निम्न चरणों का पालन करेंगे: c := एक नई सूची एक फ़ंक्शन ino

  1. Python प्रोग्राम से सूची में सबसे छोटी संख्या खोजना Python प्रोग्राम से सूची में सबसे छोटी संख्या खोजना

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक सूची दी गई है, हमें सूची में उपलब्ध सबसे छोटी संख्या प्रदर्शित करने की आवश्यकता है। यहां हम या तो सूची को क्रमबद्ध करके सबसे छोटा तत्व प्राप्त कर सकते हैं या बिल्ट-इन min() फ़ंक्शन का उपयोग करके सबसे छोटा तत्

  1. - दो संख्याओं के बाइनरी प्रतिनिधित्व एनाग्राम हैं या नहीं जांचने का पायथन प्रोग्राम

    समस्या विवरण दो संख्याएं दी गई हैं। हमारा कार्य यह जांचना है कि क्या वे बाइनरी प्रतिनिधित्व में एक-दूसरे के एनाग्राम हैं या नहीं। हम इस समस्या को पायथन में Counter(iterable) विधि और डिक्शनरी तुलना का उपयोग करके जल्दी हल कर सकते हैं। उदाहरण इनपुट: a = 8, b = 16 आउटपुट: हां दोनों संख्याओं के बाइनरी प