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

पायथन में गिनें और कहें

यहां हम काउंट एंड साय सीक्वेंस देखेंगे। यह एक क्रम है जिसके कुछ पद नीचे दिए गए हैं -

  • 1
  • 11
  • 21
  • 1211
  • 111221

स्ट्रिंग को इस तरह पढ़ा जाएगा

  • 1 (एक)
  • 11 (एक 1) तो पिछला 1 पढ़ें और "एक 1" कहें
  • 21 (दो 1) तो पिछले 11 को पढ़ें और "दो 1" कहें
  • 1211 (एक 2 एक 1) अतः पिछला 21 पढ़ें, और कहें "एक 2 एक 1"
  • 111221 (एक 1 एक 2 दो 1) इसलिए पिछला 1211 पढ़ें, और कहें "एक 1 एक 2 दो 1"

मान लीजिए हमारे पास एक संख्या n, 1 <=n <=30 है, तो हमें nवाँ पद उत्पन्न करना होगा।

इसे हल करने के लिए, हम इस दृष्टिकोण का पालन करेंगे -

  • सेट सेट :="1"
  • अगर n =1 है, तो s वापस करें
  • i के लिए:=2 से n + 1
    • j :=0, अस्थायी :="", curr ="" और गिनती :=0
    • जबकि j
    • अगर curr "" है, तो curr :=s[j], गिनें :=1 और j को 1 से बढ़ा दें
    • और अगर curr s[j] है, तो गिनती और j को 1 से बढ़ा दें
    • अन्यथा अस्थायी:=अस्थायी + स्ट्रिंग के रूप में गिनती + curr, curr ="", गिनती:=0
  • अस्थायी:=अस्थायी + स्ट्रिंग के रूप में गिनती + curr
  • वापसी
  • आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

    उदाहरण

    class Solution(object):
       def countAndSay(self, n):
          """
          :type n: int
          :rtype: str
          """
          s = "1"
          if n == 1:
             return s
          for i in range(2,n+1):
             j = 0
             temp = ""
             curr = ""
             count = 0
             while j<len(s):
                #print(curr,count)
                if curr =="":
                   #print(curr)
                   curr=s[j]
                   count=1
                   j+=1
                elif curr == s[j]:
                   #print(curr)
                   count+=1
                   j+=1
                else:
                   #print(count,curr)
                   temp+= str(count) + curr
                   curr=""
                   count = 0
                   #print(temp)
             temp+=str(count) + curr
             s=temp
          return s
    ob1 = Solution()
    print(ob1.countAndSay(6))

    इनपुट

    print(ob1.countAndSay(6))

    आउटपुट

    312211

    1. पायथन में क्रमपरिवर्तन और संयोजन?

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

    1. fcntl और ioctl सिस्टम पायथन में कॉल करता है

      फ़ाइलों और io को नियंत्रित करने के लिए, हमें fcntl . का उपयोग करना चाहिए मापांक। यह मूल रूप से fcntl() और ioctl() यूनिक्स रूटीन के लिए एक इंटरफ़ेस है। इस मॉड्यूल की सभी विधियाँ एक पूर्णांक या io.IOBase फ़ाइल-डिस्क्रिप्टर को अपना पहला तर्क मानती हैं। इस मॉड्यूल का उपयोग करने के लिए, हमें इसका उपयोग

    1. पायथन में =+ और +=क्या करते हैं?

      +=ऑपरेटर ऑब्जेक्ट के लिए सिंटैक्टिक शुगर है।__iadd__() फ़ंक्शन। पायथन डॉक्स से: इन विधियों को संवर्धित अंकगणितीय असाइनमेंट को लागू करने के लिए कहा जाता है (+=, -=, *=, @=, /=, //=, %=, **=, =, &=, ^=, |=). इन विधियों को ऑपरेशन को जगह में करने का प्रयास करना चाहिए (स्वयं को संशोधित करना) और परिणाम व