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

পাইথন প্রোগ্রাম - খালি এবং besetzt সিটের মধ্যবর্তী সর্বাধিক দূরত্ব বের করুন

মনে করুন seats শুধু ০ এবং ১ ধারণকারী একটি লিস্ট। seats[i] একটি সিট প্রতিনিধিত্ব করে। ১ হলে заняস্ত, ০ হলে খালি। কমপক্ষে একটি খালি এবং একটি заняস্ত সিট আছে, আমাদের খালি সিট থেকে নিকটতম заняস্ত সিটের সর্বাধিক দূরত্ব বের করতে হবে।

ইনপুট seats = [1, 0, 1, 0, 0, 0, 1] হলে আউটপুট হবে ২, কারণ seats[4] নিয়মে দূরত্ব ২।

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

  • res := 0, last := -1, n := len(seats)
  • i = 0 থেকে n-1 পর্যন্ত:
    • যদি seats[i] == 1:
      • res := max(res, i if last < 0 else (i - last) // 2)
      • last := i
  • max(res, n - last - 1) ফেরত দিন

উদাহরণ

বাস্তবায়ন:

def solve(seats):
    res, last, n = 0, -1, len(seats)
    for i in range(n):
        if seats[i]:
            res = max(res, i if last < 0 else (i - last) // 2)
            last = i
    return max(res, n - last - 1)

seats = [1, 0, 1, 0, 0, 0, 1]
print(solve(seats))

ইনপুট

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

আউটপুট

2
  1. পাইথনে সমকোণ ত্রিভুজের মিডপয়েন্ট এবং বেসের কোণ বের করার প্রোগ্রাম

  2. পাইথনে বাইনারি ট্রিতে দুটি নোডের মধ্যকার দূরত্ব খুঁজে বের করার প্রোগ্রাম

  3. পাইথনে বাইনারি ট্রিতে নোড এবং এর ডিসেন্ডেন্টের মধ্যে সর্বোচ্চ পার্থক্য বের করার প্রোগ্রাম

  4. পাইথনে লিস্টে সর্বোচ্চ ও ন্যূনতম উপাদানের পজিশন বের করার প্রোগ্রাম