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

एक सूची के प्रत्येक विभाजन का आकार खोजने के लिए कार्यक्रम जहां प्रत्येक अक्षर पायथन में अधिकतम एक टुकड़े पर दिखाई देता है

मान लीजिए कि हमारे पास एक लोअरकेस स्ट्रिंग s है, हम s को अधिक से अधिक टुकड़ों में विभाजित कर सकते हैं जैसे कि प्रत्येक अक्षर अधिक से अधिक एक टुकड़े में दिखाई दे और विभाजन के आकार को एक सूची के रूप में खोजें।

इसलिए, यदि इनपुट s ="momoplaykae" जैसा है, तो आउटपुट [4, 1, 1, 4, 1] होगा, क्योंकि स्ट्रिंग ["मोमो", "पी", "एल", " अयका", "ई"]।

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

  • गिनती :=एक नक्शा जिसमें s और उनके बारंबारता में वर्ण होते हैं

  • बाहर:=एक नई सूची, stk:=एक खाली स्टैक

  • लंबाई :=0

  • एस में प्रत्येक चार के लिए, करें

    • गिनती [चार]:=गिनती [चार] - 1

    • लंबाई :=लंबाई + 1

    • जबकि गिनती [चार] 0 के समान नहीं है या stk खाली नहीं है, करें

      • अगर गिनती [चार] 0 के समान नहीं है, तो

        • stk में चार पुश करें

        • लूप से बाहर आएं

      • यदि stk खाली नहीं है और गिनती [stk का शीर्ष] 0 के समान है, तो

        • stk से पॉप करें

      • अन्यथा,

        • लूप से बाहर आएं

    • यदि stk खाली है और गिनती [char] 0 के समान है, तो

      • बाहर की लंबाई डालें

      • लंबाई :=0

  • वापस लौटें

उदाहरण

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

from collections import Counter
class Solution:
   def solve(self, s):
      count = Counter(s)
      out = []
      stk = []
      length = 0
      for char in s:
         count[char] -= 1
         length += 1
         while count[char] != 0 or stk:
            if count[char] != 0:
               stk.append(char)
               break
            if stk and count[stk[-1]] == 0:
               stk.pop()
            else:
               break
            if not stk and count[char] == 0:
               out += [length]
               length = 0
         return out
ob = Solution()
s = "momoplaykae"
print(ob.solve(s))

इनपुट

"momoplaykae"

आउटपुट

[4, 1, 1, 4, 1]

  1. एक सूची का संचयी योग खोजने के लिए पायथन कार्यक्रम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक सूची दी गई है, हमें संचयी राशि के साथ एक सूची बनानी होगी। आइए अब नीचे दिए गए कार्यान्वयन में समाधान देखें - उदाहरण # cumulative sum def Cumulative(l):    new = []    cumsum = 0   &nb

  1. एक सूची में सबसे बड़ी संख्या खोजने के लिए पायथन कार्यक्रम

    इस लेख में, हम दिए गए समस्या कथन को हल करने के लिए समाधान और दृष्टिकोण के बारे में जानेंगे। समस्या कथन दी गई सूची इनपुट, हमें दी गई सूची में सबसे बड़ी संख्या खोजने की जरूरत है। यहां हम दो दृष्टिकोणों पर चर्चा करेंगे सॉर्टिंग तकनीकों का उपयोग करना अंतर्निहित अधिकतम() फ़ंक्शन का उपयोग करना दृष्टिक

  1. पायथन में एक सूची का आकार खोजें

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