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

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


मान लीजिए हमारे पास एक संख्या 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वां टर्म उत्पन्न करना है।

समाधान दृष्टिकोण

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

  • s := "1" सेट करें
  • यदि n == 1, तो s लौटाएं
  • i := 2 से n+1 तक:
    • j := 0, temp := "", curr := "", count := 0
    • जब तक j < len(s):
      • यदि curr खाली है:
        • curr := s[j], count := 1, j += 1
      • अन्यथा यदि curr == s[j]:
        • count += 1, j += 1
      • अन्यथा:
        • temp += str(count) + curr
        • curr := "", count := 0
    • temp += str(count) + curr
    • s := temp
  • s लौटाएं

उदाहरण कोड

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 के बीच है।समाधान दृष्टिकोणइसे हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे (पोस्ट-ऑर्डर

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

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

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

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