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

পাইথনে একটি উপাদান ডিলিট করুনোর পর সর্বোচ্চ ১-वाले সাবঅ্যারে খুঁজে বের করা


একটি বাইনারি অ্যারে nums দেওয়া আছে। আমরা একটা উপাদান ডিলিট করতে পারি। ডিলিট করার পর ফলাফল অ্যারেতে শুধু ১ দিয়ে গঠিত সর্বোচ্চ দৈর্ঘ্যের নন-খালি সাবঅ্যারের আকার বের করতে হবে। এমন সাবঅ্যারে না থাকলে ০ ফেরত দিন।

যেমন, nums = [1,0,1,1,1,0,1,1,0] হলে আউটপুট ৫। কারণ ৫ নম্বর ইনডেক্সের ০ ডিলিট করলে [1,1,1,1,1] পাওয়া যায়।

সমাধানের ধাপসমূহ

  • যদি nums-এ ০ নেই, তবে len(nums) - 1 ফেরত দিন।
  • যদি nums-এ ১ নেই, তবে ০ ফেরত দিন।
  • a := খালি লিস্ট, cnt := 0
  • nums-এর প্রতিটি i এর জন্য:
    • যদি i == 0 হয়:
      • যদি cnt != 0 হয়, তবে a-তে cnt যোগ করুন, cnt := 0
      • a-তে i (০) যোগ করুন।
    • অন্যথায়, cnt := cnt + 1
  • যদি cnt != 0 হয়, তবে a-তে cnt যোগ করুন।
  • Max := 0
  • a-এর প্রতিটি ইনডেক্স i এর জন্য:
    • যদি a[i] != 0 হয়, তবে চালিয়ে যান।
    • যদি a[i] == 0 এবং i == len(a)-1 হয়, তবে Max := max(Max, a[i-1])
    • যদি a[i] == 0 এবং i == 0 হয়, তবে Max := max(Max, a[i+1])
    • অন্যথায় (মাঝপথে ০ হলে), Max := max(Max, a[i+1] + a[i-1])
  • Max ফেরত দিন।

উদাহরণ

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. পাইথনে এক জোড়া বিট সওয়াপ করে সবচেয়ে লম্বা ১-র সাবস্ট্রিং বের করার প্রোগ্রাম

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

  4. পাইথন প্রোগ্রাম: ২ডি অ্যারে-তে k-তম ছোট এলিমেন্ট বের করা