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

पायथन में एक संदेश को डिकोड करने के कई तरीकों को खोजने के लिए कार्यक्रम

मान लीजिए कि हमारे पास 'ए' =1, 'बी' =2, ... 'जेड' =26 जैसी मैपिंग है, और हमारे पास एक एन्कोडेड संदेश संदेश स्ट्रिंग है, हमें इसे डिकोड करने के तरीकों की संख्या गिननी होगी।

इसलिए, यदि इनपुट संदेश ="222" जैसा है, तो आउटपुट 3 होगा, क्योंकि इसे 3 तरीकों से डिकोड किया जा सकता है:बीबीबी, बीवी, और वीबी।

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

  • मेमो :=संदेश आकार के समान आकार के 0s की सूची + 1

  • मेमो[0] :=1

  • मेमो[1] :=1 जब संदेश [0] "0" के समान न हो अन्यथा 0

  • क्योंकि मैं 2 से संदेश के आकार के बीच में हूं, ऐसा करें

    • n1 :=संदेश का संख्यात्मक मान [सूचकांक i-1 से i तक]

    • n2 :=संदेश का सांख्यिक मान [सूचकांक i-2 से i तक]

    • n1_valid:=सत्य जब n1> 0

    • n2_valid:=सत्य जब n2> 9 और n2 <27

    • अगर n1_valid सही है, तो

      • मेमो[i] :=मेमो[i] + मेमो[i-1]

    • अगर n2_valid सही है, तो

      • मेमो[i] :=मेमो[i] + मेमो[i-2]

  • मेमो का अंतिम तत्व लौटाएं

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

उदाहरण

class Solution:
   def solve(self, message):
      memo = [0 for i in range(len(message)+1)]
      memo[0] = 1
      memo[1] = 1 if message[0]!="0" else 0

      for i in range(2,len(message)+1):
         n1 = int(message[i-1:i])
         n2 = int(message[i-2:i])

         n1_valid= n1>0
         n2_valid= n2>9 and n2<27

         if n1_valid:
            memo[i]+=memo[i-1]
         if n2_valid:
            memo[i]+=memo[i-2]
      return memo[-1]
ob = Solution()
message = "2223"
print(ob.solve(message))

इनपुट

"2223"

आउटपुट

5

  1. पायथन में हम जितने सिक्के एकत्र कर सकते हैं, उन्हें खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक 2D मैट्रिक्स है जहां प्रत्येक सेल कुछ सिक्के संग्रहीत करता है। अगर हम [0,0] से शुरू करते हैं, और केवल दाएं या नीचे जा सकते हैं, तो हमें नीचे दाएं कोने से अधिकतम सिक्कों की संख्या का पता लगाना होगा। तो, अगर इनपुट पसंद है 1 4 2 2 0 0 0 5 तब आउटपुट 14 होग

  1. प्रोग्राम यह पता लगाने के लिए कि हम कितने तरीकों से पायथन में सीढ़ियाँ चढ़ सकते हैं

    मान लीजिए कि हमारे पास n सीढ़ियां हैं, और हम एक बार में 1 या 2 सीढ़ियां चढ़ सकते हैं। हमें एक फ़ंक्शन को परिभाषित करना होगा जो सीढ़ियों पर चढ़ने के अनूठे तरीकों की संख्या लौटाता है। चरणों का क्रम नहीं बदला जाना चाहिए, इसलिए चरणों के प्रत्येक भिन्न क्रम को एक तरीके के रूप में गिना जाता है। यदि उत्तर

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

    इस लेख में, हम दिए गए समस्या कथन को हल करने के लिए समाधान और दृष्टिकोण के बारे में जानेंगे। समस्या कथन दी गई सूची इनपुट, हमें दी गई सूची में सबसे बड़ी संख्या खोजने की जरूरत है। यहां हम दो दृष्टिकोणों पर चर्चा करेंगे सॉर्टिंग तकनीकों का उपयोग करना अंतर्निहित अधिकतम() फ़ंक्शन का उपयोग करना दृष्टिक