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

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

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

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

होगा

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

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

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

    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. पायथन में पत्तियों का क्रम दो पत्तियों के समान है या नहीं, यह जांचने के लिए कार्यक्रम

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

    1. सूची में सबसे छोटी संख्या खोजने के लिए पायथन प्रोग्राम

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

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

      दो नंबर दिए। हमारा काम यह जांचना है कि क्या वे बाइनरी प्रतिनिधित्व में एक दूसरे के आरेख हैं या नहीं। हम काउंटर (पुनरावृत्त) विधि और शब्दकोश तुलना का उपयोग करके इस समस्या को जल्दी से अजगर में हल कर सकते हैं। उदाहरण Input: a = 8, b = 16 Output : Yes Binary representations of both numbers have same 0