কম্পিউটার

পাইথনে খালি এবং দখলকৃত আসনের মধ্যে সর্বাধিক দূরত্ব খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের কাছে একটি তালিকা আছে যার নাম শুধুমাত্র 0 এবং 1s আসন। যেখানে আসন [i] একটি আসন প্রতিনিধিত্ব করে। যখন এটি 1 হয়, তখন এটি দখল করা হয়, অন্যথায় মুক্ত। এখানে কমপক্ষে একটি বিনামূল্যের আসন এবং কমপক্ষে একটি দখলকৃত আসন রয়েছে, আমাদের একটি বিনামূল্যের আসন থেকে নিকটতম দখলকৃত আসনের সর্বাধিক দূরত্ব খুঁজে বের করতে হবে৷

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

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

  • res :=0

  • শেষ :=-1

  • n :=আসনের আকার

  • আমি 0 থেকে n - 1 রেঞ্জের জন্য, করুন

    • যদি আসন [i] 1 হয়, তাহলে

      • res :=res এর সর্বোচ্চ এবং (i যদি শেষ হয় <0 অন্যথায় (i-last)/2 এর ফ্লোর)

      • শেষ :=i

  • সর্বোচ্চ রেজাল্ট ফেরত দিন এবং (n-last-1)

উদাহরণ

আসুন আরও ভালভাবে বোঝার জন্য নিম্নলিখিত বাস্তবায়ন দেখি

def সমাধান (আসন):res, last, n =0, -1, len(seats) for i range(n):if seats[i]:res =max(res, i if last <0 else) (i - শেষ) // 2) শেষ =আমি সর্বোচ্চ রিটার্ন করি> 

ইনপুট

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

আউটপুট

2

  1. একটি সমকোণী ত্রিভুজের মধ্যবিন্দু এবং ভিত্তির মধ্যে কোণ খুঁজে পাওয়ার জন্য পাইথন প্রোগ্রাম

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

  3. পাইথনে নোড এবং ডিসেন্ডেন্টের মধ্যে পার্থক্য খুঁজে বের করার জন্য প্রোগ্রাম

  4. পাইথন প্রোগ্রাম একটি তালিকায় সর্বাধিক এবং সর্বনিম্ন উপাদানের অবস্থান খুঁজে পেতে?