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

पायथन में डिकोड तरीके


मान लीजिए कि हमारे पास एक संदेश है जिसमें A से Z तक के अक्षरों को निम्नलिखित मैपिंग का उपयोग करके संख्याओं में एन्कोड किया जा रहा है - 'A' → 1, 'B' → 2 ... 'Z' → 26. इसलिए यदि हमारे पास केवल अंकों वाली एक गैर-रिक्त स्ट्रिंग है, तो हमें यह पता लगाना होगा कि इसे कितने तरीकों से डिकोड किया जा सकता है। तो यदि स्ट्रिंग "12" की तरह है, तो उसे "एबी" या "एल" से बनाया जा सकता है, इसलिए दो संभावित तरीके हैं। तो उत्तर 2 होगा।

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

  • हम इसे गतिशील प्रोग्रामिंग का उपयोग करके हल करेंगे।
  • n :=s की लंबाई
  • dp :=0s की n संख्या वाली एक सरणी
  • यदि s[0] '0' नहीं है, तो dp[0] :=1
  • मैं के लिए 1 से n - 1 की सीमा में
    • x :=s[i] पूर्णांक के रूप में, y :=s का अनुक्रमणिका i – 1 से i + 1 को पूर्णांक के रूप में प्रतिस्थापित करना
    • यदि x>=1 और y <=9, तो dp[i] :=dp[i] + dp[i – 1]
    • यदि y>=10 और y <=26
      • यदि i – 2>=0, तो dp[i] :=dp[i] + dp[i – 2], अन्यथा dp[i] को 1 से बढ़ा दें
  • dp का अंतिम तत्व लौटाएं

उदाहरण (पायथन)

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

class Solution(object):
   def numDecodings(self, s):
      n = len(s)
      dp = [0 for i in range(n)]
      if s[0]!='0':
         dp[0]=1
      for i in range(1,n):
         x = int(s[i])
         y = int(s[i-1:i+1])
         if x>=1 and x<=9:
            dp[i]+=dp[i-1]
         if y>=10 and y<=26:
            if i-2>=0:
               dp[i]+=dp[i-2]
            else:
               dp[i]+=1
      return dp[-1]
ob1 = Solution()
print(ob1.numDecodings("226"))

इनपुट

"226"

आउटपुट

3

  1. पायथन में एक सूची को साफ़ करने के विभिन्न तरीके

    एक अजगर सूची में सभी तत्वों को साफ़ करना कई तरीकों से किया जा सकता है। नीचे कुछ तरीके दिए गए हैं जो इसे प्राप्त करने के लिए लागू किए गए हैं। स्पष्ट () का उपयोग करके यह फ़ंक्शन मानक पुस्तकालय का एक हिस्सा है और पायथन सूची को पूरी तरह से खाली कर देता है। Syntax: list_name.clear() list_name is the nam

  1. पायथन में एस्केप कैरेक्टर प्रिंट करने के तरीके

    इस लेख में, हम यह देखने जा रहे हैं कि हम पायथन में एस्केप कैरेक्टर को कैसे प्रिंट कर सकते हैं। मुझे लगता है कि आप जानते हैं कि बचने वाले पात्र क्या हैं? आइए देखें कि उन लोगों के लिए कौन से एस्केप पात्र हैं जो नहीं जानते हैं? स्ट्रिंग्स में अलग-अलग अर्थों के लिए एस्केप वर्णों का उपयोग किया जाता है।

  1. पायथन में एक चरित्र को बढ़ाने के तरीके

    इस ट्यूटोरियल में, हम Python में एक कैरेक्टर को बढ़ाने के लिए विभिन्न तरीकों को देखने जा रहे हैं। टाइपकास्टिंग आइए पहले देखें कि अगर हम टाइपकास्टिंग के बिना चार में एक इंट जोड़ते हैं तो क्या होता है। उदाहरण ## str initialization char = "t" ## try to add 1 to char char += 1 ## gets an erro