কম্পিউটার

পাইথনে একটি প্রদত্ত তালিকা থেকে দীর্ঘতম ফিবোনাচ্চি পরবর্তী দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের কাছে ক্রমবর্ধমান ধনাত্মক সংখ্যার একটি তালিকা আছে যাকে বলা হয় সংখ্যা। আমাদেরকে দীর্ঘতম অনুগামী A এর দৈর্ঘ্য খুঁজে বের করতে হবে (দৈর্ঘ্য সর্বনিম্ন 3 এর) যেমন A[i] =A[i - 1] + A[i - 2] সমস্ত i> 1 এর জন্য।

সুতরাং, যদি ইনপুটটি সংখ্যার মত হয় =[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], তাহলে আউটপুট হবে 6, যেমন আমরা বাছাই করতে পারি। [১, ২, ৩, ৫, ৮, ১৩]।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • A :=সংখ্যা
  • n :=A এর আকার
  • maxLen :=0
  • S :=A থেকে একটি নতুন সেট
  • আমি 0 থেকে n রেঞ্জের জন্য, কর
      i + 1 থেকে n রেঞ্জে j-এর জন্য
    • করুন
      • x :=A[j]
      • y :=A[i] + A[j]
      • দৈর্ঘ্য :=2
      • যখন y S তে উপস্থিত থাকে, do
        • z :=x + y
        • x :=y
        • y :=z
        • দৈর্ঘ্য :=দৈর্ঘ্য + 1
        • maxLen :=maxLen এর সর্বোচ্চ, দৈর্ঘ্য
  • যদি 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 দীর্ঘতম শব্দ খুঁজুন