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

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

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

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

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

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

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

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

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

उदाहरण

class Solution(object):
   def decodeAtIndex(self, s, k):
      """
      :type S: str
      :type K: int
      :rtype: str
      """
      size = 0
      for i in s:
         if i.isdigit():
            size *= int(i)
         else:
            size += 1
      #print(size)
      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. केसफोल्ड () पायथन में स्ट्रिंग

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

  1. पायथन में अनुक्रम सूचकांक द्वारा पुनरावृति कैसे करें?

    पायथन में अनुक्रम वस्तुएं वस्तुओं का एक क्रमबद्ध संग्रह है। अनुक्रम में प्रत्येक आइटम (सूची, टपल और स्ट्रिंग) 0 से शुरू होने वाले सूचकांक द्वारा पहुँचा जा सकता है। किसी सूची में तत्वों को पार करने के लिए >>> L1=[10,20,30,40,50] >>> for i in range(len(L1)): print (L1[i]) 10 20 30 4

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

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