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

पायथन में दी गई सूची से सबसे लंबे फाइबोनैकी सबसीक्वेंस की लंबाई खोजने का प्रोग्राम


मान लीजिए हमारे पास सख्ती से बढ़ती हुई धनात्मक संख्याओं की एक सूची nums है। हमें सबसे लंबे सबसीक्वेंस A (न्यूनतम लंबाई 3) की लंबाई ढूंढनी है जैसे कि सभी i > 1 के लिए A[i] = A[i-1] + A[i-2] हो।

उदाहरण के लिए, यदि इनपुट nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] है, तो आउटपुट 6 होगा, क्योंकि हम [1, 2, 3, 5, 8, 13] चुन सकते हैं।

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

इसे हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:

  • A := nums, n := len(A)
  • maxLen := 0
  • S := set(A)
  • i को 0 से n तक:
    • j को i+1 से n तक:
      • x := A[j], y := A[i] + A[j]
      • length := 2
      • जब तक y in S:
        • z := x + y, x := y, y := z
        • length += 1
        • maxLen := max(maxLen, length)
  • यदि maxLen > 2: maxLen लौटाएं, अन्यथा 0

उदाहरण कोड

class Solution:
    def solve(self, nums):
        A = nums
        n = len(A)
        maxLen = 0
        S = set(A)
        for i in range(n):
            for j in range(i+1, n):
                x = A[j]
                y = A[i] + A[j]
                length = 2
                while y in S:
                    z = x + y
                    x = y
                    y = z
                    length += 1
                    maxLen = max(maxLen, length)
        return maxLen if maxLen > 2 else 0

ob = Solution()
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
print(ob.solve(nums))

इनपुट

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]

आउटपुट

6

  1. - पायथन में सबसे लंबे पैलिंड्रोमिक सबस्ट्रिंग की लंबाई ढूंढने का प्रोग्राम

    मान लीजिए हमारे पास एक स्ट्रिंग S है। हमें S में सबसे लंबे पैलिंड्रोमिक सबस्ट्रिंग की लंबाई ढूंढनी है। हम मान रहे हैं कि स्ट्रिंग S की लंबाई 1000 है। उदाहरण के लिए, यदि स्ट्रिंग BABAC है, तो सबसे लंबा पैलिंड्रोमिक सबस्ट्रिंग BAB है और इसकी लंबाई 3 है।समाधान दृष्टिकोण (डायनामिक प्रोग्रामिंग)इस समस्या

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

    मान लीजिए हमारे पास लोअरकेस स्ट्रिंग्स की एक सूची है, हमें सबसे लंबा सामान्य उपसर्ग ढूंढना है। उदाहरण के लिए, यदि इनपुट [antivirus, anticlockwise, antigravity] है, तो आउटपुट anti होगा। इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे: words सूची को वर्णमाला क्रम में क्रमबद्ध करें prefix := एक नई स

  1. - पायथन में दी गई सूची से k सबसे लंबे शब्द खोजें

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