কম্পিউটার

পাইথনে একটি ফোল্ডার থেকে বাড়িতে ফিরে যাওয়ার জন্য প্রয়োজনীয় ন্যূনতম লাফ খুঁজে বের করার জন্য প্রোগ্রাম


ধরুন আমাদের একটি লগ আছে যেখানে আমাদের ফোল্ডারে প্রবেশ করার পথ আছে, সেখানে বিভিন্ন চিহ্ন থাকতে পারে যেমন −

  • "../" :বর্তমান থেকে মূল ফোল্ডারে সরান। (যদি আমরা মূল ফোল্ডারে থাকি তবে অবস্থান পরিবর্তন করবেন না)।

  • "./" :বর্তমান ফোল্ডারে থাকুন৷

  • "x/" :x নামের চাইল্ড ফোল্ডারে যান।

লগগুলি থেকে আমাদের শেষ ফোল্ডার থেকে ফিরে আসার জন্য প্রয়োজনীয় ন্যূনতম সংখ্যক অপারেশন খুঁজে বের করতে হবে যেখানে আমরা মূল ফোল্ডারে থামি৷

সুতরাং, যদি ইনপুটটি লগের মত হয় =["Dir1/","Dir2/",../","Dir2/","Dir3/",."/"], তাহলে আউটপুট হবে 3 পি>

পাইথনে একটি ফোল্ডার থেকে বাড়িতে ফিরে যাওয়ার জন্য প্রয়োজনীয় ন্যূনতম লাফ খুঁজে বের করার জন্য প্রোগ্রাম

ছবিটি থেকে আমরা দেখতে পাচ্ছি আমাদের বাড়িতে পৌঁছতে তিনবার পিছিয়ে যেতে হবে।

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

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

  • প্রতিটি আইটেমের জন্য আমি লগ ইন করি, করুন

    • যদি আমি "../" এর মত হয় এবং stk> 0 এর আকার হয়, তাহলে

      • stk

        থেকে শেষ উপাদান মুছে দিন
    • অন্যথায় যখন আমি "./" এর মতো না এবং আমি "../" এর মতো না, তখন

      • stk

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

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

  • stk

    -এ আইটেমের সংখ্যা ফেরত দিন

উদাহরণ (পাইথন)

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

def solve(logs):
   stk = []
   for i in logs:
      if i == "../" and len(stk) > 0:
         stk.pop()
      elif i != "./" and i != "../":
         stk.append(i)
      else:
         continue
   return len(stk)

logs = ["Dir1/","Dir2/","../","Dir2/","Dir3/","./"]
print(solve(logs))

ইনপুট

["Dir1/","Dir2/","../","Dir2/","Dir3/","./"]

আউটপুট

3

  1. পাইথনে সাব-ট্রির নোড মানের সমষ্টি থেকে ন্যূনতম মান বের করার প্রোগ্রাম

  2. পাইথনে ফেরিস হুইল থেকে লাভ সর্বাধিক করার জন্য প্রয়োজনীয় ন্যূনতম ঘূর্ণনগুলি খুঁজে বের করার জন্য প্রোগ্রাম

  3. পাইথনে সমস্ত ভাল পারফর্মারদের ন্যূনতম পরিমাণ অর্থ প্রদানের প্রয়োজন খুঁজে বের করার জন্য প্রোগ্রাম

  4. একটি তালিকা থেকে N বৃহত্তম উপাদান খুঁজে পেতে পাইথন প্রোগ্রাম