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

পাইথনে সংখ্যার তালিকা থেকে সাইন অল্টারনেটিং সাবসিকোয়েন্সের সর্বোচ্চ দৈর্ঘ্য বের করার প্রোগ্রাম


মান লক্ষ্য করুন আমাদের কাছে একটি সংখ্যার তালিকা nums আছে। আমাদের কাজ হল সবচেয়ে লম্বা সাবসিকোয়েন্সের দৈর্ঘ্য বের করা যেটি প্রতিটি المستمر সংখ্যায় সাইন (পজিটিভ/নেগেটিভ) ফ্লিপ করে।

উদাহরণস্বরূপ, যদি ইনপুট হয় nums = [1, 3, -6, 4, -3], তবে আউটপুট হবে 4, কারণ আমরা [1, -6, 4, -3] বেছে নিতে পারি।

সমাধানের ধাপসমূহ:
  • pos := 0, neg := 0
  • প্রতিটি n এর জন্য nums-এ:
    • যদি n < 0 হয়, তবে neg := pos + 1
    • অন্যথায়, pos := neg + 1
  • max(pos, neg) রিটার্ন করুন।
উদাহরণ কোড
class Solution:
    def solve(self, nums):
        pos = neg = 0
        for n in nums:
            if n < 0:
                neg = pos + 1
            else:
                pos = neg + 1
        return max(pos, neg)

ob = Solution()
nums = [1, 3, -6, 4, -3]
print(ob.solve(nums))
ইনপুট
[1, 3, -6, 4, -3]
আউটপুট
4
  1. পাইথনে বাইনারি ট্রির সর্বোচ্চ অল্টারনেটিং পথের দৈর্ঘ্য বের করার প্রোগ্রাম

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

  3. পাইথনে বদলাফালা অসমতা উপাদান সাবলিস্টের সর্বোচ্চ দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম

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