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

पायथन में वर्णमाला से पूर्णांक मानचित्रण के लिए स्ट्रिंग को डिक्रिप्ट करें


मान लीजिए कि हमारे पास एक स्ट्रिंग s है जो अंकों ('0' - '9') और '#' से बनती है। हमें s को एक अंग्रेजी लोअरकेस वर्णों में निम्नानुसार मैप करना होगा -

  • वर्ण ('a' से 'i') को क्रमशः ('1' से '9') द्वारा दर्शाया जाता है।

  • वर्ण ('j' से 'z') को क्रमशः ('10#' से '26#') द्वारा दर्शाया जाता है।

हमें मैपिंग के बाद बनने वाली स्ट्रिंग को ढूंढना है। हम एक धारणा ले रहे हैं कि एक अद्वितीय मानचित्रण हमेशा मौजूद रहेगा। तो अगर इनपुट “10#11#12” जैसा है, तो यह “jkab” होगा। जैसे 10# j है, 11# k है, 1 a है और 2 b है।

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

  • सभी वर्णों और उनके संगत ASCII मानों को रखने के लिए एक नक्शा बनाएं

  • उत्तर:=0, और नक्शा ['']:='', विज्ञापन मैं:=स्ट्रिंग की लंबाई - 1

  • जबकि मैं> 0

    • अगर s[i] # है, तो

      • अस्थायी:=""

      • j के लिए :=i – 2 to i, temp :=temp + s[j]

      • उत्तर:=नक्शा [अस्थायी] + उत्तर

      • मुझे 3 से घटाएं

    • अन्यथा उत्तर:=नक्शा [एस [i]] + उत्तर, और 1 से घटाएं

  • वापसी उत्तर

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

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

class Solution(object):
   def freqAlphabets(self, s):
      m = {}
      x = 'a'
      for i in range(1, 27):
         m[str(i)] = x
         x = chr(ord(x) + 1)
      ans = ""
      m['']=''
      i = len(s) - 1
      while i >= 0:
         if s[i] == "#":
            temp = ""
            for j in range(i - 2, i):
               temp += s[j]
            ans = m[str(temp)] + ans
            i -= 3
         else:
            ans = m[s[i]] + ans
            i -= 1
      return ans
ob1 = Solution()
print(ob1.freqAlphabets("17#123#5621#"))

इनपुट

"17#123#5621#"

आउटपुट

qawefu

  1. पायथन में बाइनरी ट्री से स्ट्रिंग का निर्माण

    मान लीजिए कि हमारे पास एक बाइनरी ट्री है जिसे हमें एक स्ट्रिंग बनाना है जिसमें प्रीऑर्डर ट्रैवर्सिंग तरीके से एक बाइनरी ट्री से कोष्ठक और पूर्णांक होते हैं। एक अशक्त नोड को खालीपैरेंटेसिस जोड़ी () द्वारा दर्शाया जाएगा। और हमें उन सभी खाली कोष्ठक युग्मों को छोड़ना होगा जो स्ट्रिंग और मूल बाइनरी ट्री

  1. पायथन में पत्ती से शुरू होने वाला सबसे छोटा तार

    मान लीजिए कि हमारे पास एक बाइनरी ट्री की जड़ है, प्रत्येक नोड में 0 से 25 तक का मान होता है, जो ए से जेड अक्षरों का प्रतिनिधित्व कर रहा है:0 का मान ए का प्रतिनिधित्व करता है, 1 का मान बी का प्रतिनिधित्व करता है , और इसी तरह। हमें शब्दावली की दृष्टि से सबसे छोटी स्ट्रिंग की खोज करनी है जो इस पेड़ के

  1. पायथन प्रोग्राम में एक स्ट्रिंग से nth कैरेक्टर को हटाना

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