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 मानों को रखने के लिए एक मैप बनाएं
  • ans := 0, और map[''] := '', और i := स्ट्रिंग की लंबाई - 1
  • जब तक i >= 0
    • यदि s[i] # है, तो
      • temp := ""
      • j := i - 2 से i तक, temp := temp + s[j]
      • ans := map[str(temp)] + ans
      • i को 3 से घटाएं
    • अन्यथा ans := map[s[i]] + ans, और i को 1 से घटाएं
  • ans लौटाएं

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

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

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 तक का मान रखता है, जो a से z अक्षरों का प्रतिनिधित्व करते हैं: 0 का मान a दर्शाता है, 1 का मान b दर्शाता है, और इसी तरह। हमें लेक्सिकोग्राफिकली सबसे छोटी स्ट्रिंग ढूंढनी है जो इस ट्री के लीफ से शुरू होती है और रूट पर समाप्त होती है।

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

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