কম্পিউটার টিউটোরিয়াল

পাইথনে দিয়ে ফিবোনাচ্চি সাবসিকোয়েন্সের সর্বোচ্চ দৈর্ঘ্য বের করার প্রোগ্রাম


মান লক্ষ্য করুন আমাদের কাছে স্ট্রিক্টলি ইনক্রিজিং পজিটিভ সংখ্যার একটি তালিকা nums আছে। আমাদের কাজ হল এমন সবচেয়ে লম্বা সাবসিকোয়েন্স A (ন্যূনতম দৈর্ঘ্য ৩) বের করা যাতে A[i] = A[i-1] + A[i-2] সকল i > 1 এর জন্য সত্য হয়।

উদাহরণস্বরূপ, যদি ইনপুট হয় 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 কে ০ থেকে 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(0, 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)
        if maxLen > 2:
            return maxLen
        else:
            return 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. পাইথনে দিয়ে गये শর্তে সর্বোচ্চ দৈর্ঘ্যের সাবলিস্ট খুঁজে বের করার প্রোগ্রাম

  2. পাইথনে সর্বোচ্চ দৈর্ঘ্যের প্যালিনড্রোমিক সাবস্ট্রিং খুঁজে বের করার প্রোগ্রাম

  3. পাইথনে স্ট্রিং তালিকা থেকে লংগেস্ট কমন প্রিফিক্স খুঁজে বের করার প্রোগ্রাম

  4. পাইথনে দिये गये লিস্ট থেকে k সংখ্যক সবচেয়ে লম্বা শব্দ বের করুন