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

पायथन में इंडेक्स पर डिकोडेड स्ट्रिंग

मान लीजिए एक एन्कोडेड स्ट्रिंग S दी गई है। हमें डिकोडेड स्ट्रिंग को टेप पर ढूंढना और लिखना है, यहां एन्कोडेड स्ट्रिंग को एक समय में एक वर्ण पढ़ा जाता है और निम्न चरण किए जाते हैं -

  • यदि पढ़ा गया वर्ण एक अक्षर है, तो उस अक्षर को टेप पर लिखा जाता है।
  • यदि पढ़ा गया वर्ण एक अंक है, तो वर्तमान टेप को अंक - 1 बार कुल मिलाकर बार-बार लिखा जाता है।

अब यदि कुछ एन्कोडेड स्ट्रिंग S, और एक इंडेक्स K दिया गया है, तो डिकोडेड स्ट्रिंग में K-वां अक्षर (इंडेक्स 1 से शुरू) ढूंढें और लौटाएं।

इसलिए यदि स्ट्रिंग "hello2World3" है और k = 10, तो आउटपुट "o" होगा। ऐसा इसलिए है क्योंकि डिकोडेड स्ट्रिंग "hellohelloWorldhellohelloWorldhellohelloWorld" होगी, इसलिए 10वां वर्ण "o" है।

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

  • size := 0
  • स्ट्रिंग s में i के लिए
    • यदि i एक संख्यात्मक वर्ण है, तो size := size * i का पूर्णांक रूप, अन्यथा size := size + 1
  • i के लिए s की लंबाई - 1 से 0 तक नीचे की रेंज में
    • k := k mod size
    • यदि s[i] संख्यात्मक है और k = 0, तो s[i] लौटाएं
    • यदि s[i] संख्यात्मक है, तो size को 1 से घटाएं, अन्यथा size := size / s[i] का पूर्णांक
  • खाली स्ट्रिंग लौटाएं

उदाहरण

class Solution(object):
    def decodeAtIndex(self, s, k):
        size = 0
        for i in s:
            if i.isdigit():
                size *= int(i)
            else:
                size += 1
        for i in range(len(s) - 1, -1, -1):
            k %= size
            if s[i].isalpha() and k == 0:
                return s[i]
            if s[i].isalpha():
                size -= 1
            else:
                size /= int(s[i])
        return ""

ob = Solution()
print(ob.decodeAtIndex("hello2World3", 10))

इनपुट

"hello2World3" 10 ob.decodeAtIndex("hello2World3", 10)

आउटपुट

o
  1. - पायथन में casefold() स्ट्रिंग विधि

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

  1. - Python में अनुक्रम इंडेक्स द्वारा कैसे पुनरावृति करें?

    Python में अनुक्रम इंडेक्स द्वारा पुनरावृति करना Python में अनुक्रम ऑब्जेक्ट्स आइटम्स का एक क्रमबद्ध संग्रह है। अनुक्रम (सूची, टपल और स्ट्रिंग) में प्रत्येक आइटम 0 से शुरू होने वाले इंडेक्स द्वारा एक्सेसिबल है। सूची में तत्वों को पार करने के लिए: >>> L1 = [10, 20, 30, 40, 50] >>>

  1. - पायथन में स्ट्रिंग का आकार कैसे प्राप्त करें?

    पायथन में len() नामक एक मेथड होता है जो हमें किसी भी कंपोजिट ऑब्जेक्ट की लंबाई देता है। स्ट्रिंग की लंबाई प्राप्त करने के लिए, बस स्ट्रिंग को len() कॉल में पास करें। उदाहरण print(len(Hello World!)) आउटपुट 12 यदि आप स्ट्रिंग का आकार बाइट्स में चाहते हैं, तो आप sys मॉड्यूल से getsizeof() मेथड का उपयोग