কম্পিউটার

পাইথন ব্যবহার করে একটি উপাদান মুছে ফেলার পরে 1s এর দীর্ঘতম সাব্যারে খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের nums নামে একটি বাইনারি অ্যারে আছে, আমরা এটি থেকে একটি উপাদান মুছে ফেলতে পারি। আমাদের দীর্ঘতম অ-খালি সাবয়ারের আকার খুঁজে বের করতে হবে যা ফলাফল অ্যারেতে শুধুমাত্র 1 ধারণ করে। যদি এমন কোন সাবয়ারে না থাকে, তাহলে 0 ফেরত দিন।

সুতরাং, ইনপুট যদি nums =[1,0,1,1,1,0,1,1,0] এর মত হয়, তাহলে আউটপুট হবে 5 কারণ অবস্থান 5 থেকে 0 সরিয়ে দিলে আমরা একটি সাবয়ারে পেতে পারি [1] ,1,1,1,1] পাঁচটি 1s আছে।

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

  • যদি 0 সংখ্যায় না হয়, তাহলে

    • সংখ্যার রিটার্ন সাইজ - 1

  • যদি 1 সংখ্যায় না হয়, তাহলে

    • ফেরত 0

  • a :=একটি নতুন তালিকা

  • cnt :=0

  • প্রতিটি i সংখ্যায়, করুন

    • যদি আমি 0 এর সমান হয়, তাহলে

      • যদি cnt 0 এর মত না হয়, তাহলে

        • a

          এর শেষে cnt ঢোকান
        • cnt :=0

      • a

        এর শেষে i ঢোকান
      • অন্যথায়,

        • cnt :=cnt + 1

  • যদি cnt 0 এর মত না হয়, তাহলে

    • a

      এর শেষে cnt ঢোকান
  • সর্বোচ্চ :=0

  • আমি 0 থেকে a এর আকারের মধ্যে, কর

    • যদি a[i] 0 এর মত না হয়, তাহলে

      • পরবর্তী পুনরাবৃত্তির জন্য যান

    • যদি a[i] 0 এর সমান হয় এবং i a - 1 এর আকারের সমান হয়, তাহলে

      • সর্বোচ্চ :=সর্বোচ্চ সর্বোচ্চ এবং a[i-1]

    • অন্যথায় যখন a[i] 0 এর সমান এবং i 0 এর সমান, তখন

      • সর্বোচ্চ :=সর্বোচ্চ সর্বোচ্চ এবং a[i+1]

    • অন্যথায় যখন a[i] 0 এর মত হয়, তখন

      • সর্বোচ্চ :=সর্বোচ্চ সর্বোচ্চ এবং (a[i+1]+a[i-1])

  • রিটার্ন ম্যাক্স

উদাহরণ

def solve(nums):
   if 0 not in nums:
      return len(nums)-1
   if 1 not in nums:
      return 0
      a = []
      cnt = 0
      for i in nums:
         if i == 0:
            if cnt != 0:
               a.append(cnt)
               cnt = 0
            a.append(i)
         else:
            cnt += 1
      if cnt!=0:
         a.append(cnt)
      Max = 0
      for i in range(len(a)):
         if a[i] != 0:
            continue
         if a[i] == 0 and i == len(a)-1:
            Max = max(Max,a[i-1])
         elif a[i] == 0 and i == 0:
            Max = max(Max,a[i+1])
         elif a[i] == 0:
            Max = max(Max,a[i+1]+a[i-1])
   return Max
nums = [1,0,1,1,1,0,1,1,0]
print(solve(nums))

ইনপুট

[1,0,1,1,1,0,1,1,0]

আউটপুট

5

  1. পাইথনে k সংখ্যা মুছে ফেলার পরে সংলগ্ন মানের সর্বাধিক পার্থক্য খুঁজে বের করার জন্য প্রোগ্রাম

  2. পাইথনে এক জোড়া বিট অদলবদল করার পর 1s-এর দীর্ঘতম সংখ্যা খুঁজে বের করার প্রোগ্রাম

  3. পাইথনে K বৃদ্ধির পর দীর্ঘতম সমতুল্য সাবলিস্ট খুঁজতে প্রোগ্রাম

  4. একটি 2D অ্যারেতে k'th ক্ষুদ্রতম উপাদান খুঁজে পেতে পাইথন প্রোগ্রাম