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

पायथन में लुक एंड सी सीक्वेंस में nth टर्म खोजने का कार्यक्रम

मान लीजिए कि हमारे पास एक संख्या n है, तो हमें "देखो और कहो" क्रम में nवाँ पद उत्पन्न करना होगा। यह एक क्रम है जिसके कुछ पद नीचे दिए गए हैं -

  • 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 solve(self, n):
          s = "1"
          if n == 1:
             return s
          for i in range(2,n+1):
             j = 0
             temp = ""
             curr = ""
             count = 0
             while j <len(s):
                if curr =="":
                   curr=s[j]
                   count=1
                   j+=1
                elif curr == s[j]:
                   count+=1
                   j+=1
                else:
                   temp+= str(count) + curr
                   curr=""
                   count = 0
                   temp+=str(count) + curr
                   s=temp
             return s
    ob = Solution()
    n = 5
    print(ob.solve(n))

    इनपुट

    5

    आउटपुट

    "111221"

    1. पायथन में नोड और वंशज के बीच अंतर खोजने का कार्यक्रम

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

    1. पायथन में लगातार सबसे लंबे अनुक्रम की लंबाई खोजने का कार्यक्रम

      मान लीजिए कि हमारे पास संख्याओं की एक क्रमबद्ध सरणी है, हमें लगातार तत्वों के सबसे लंबे अनुक्रम की लंबाई का पता लगाना है। इसलिए, यदि इनपुट अंकों की तरह है =[70, 7, 50, 4, 6, 5], तो आउटपुट 4 होगा, क्योंकि लगातार तत्वों का सबसे लंबा अनुक्रम [4, 5, 6, 7] है। इसलिए हम इसकी लंबाई लौटाते हैं:4. इसे हल क

    1. पायथन में पास्कल के त्रिभुज की nवीं पंक्ति खोजने का कार्यक्रम

      मान लीजिए कि हमारे पास एक संख्या n है, हमें पास्कल त्रिभुज की nवीं (0-अनुक्रमित) पंक्ति ज्ञात करनी है। जैसा कि हम जानते हैं कि पास्कल का त्रिभुज इस प्रकार बनाया जा सकता है - शीर्ष पंक्ति में, 1 की एक सरणी है। उपरोक्त संख्या को ऊपर और बाईं ओर ऊपर और दाईं ओर जोड़कर अगली पंक्ति बनाई जाती है। तो कुछ