কম্পিউটার

রোবট চেক করার প্রোগ্রাম পাইথনে পরিদর্শন করা জায়গাগুলিতে অগ্রসর হয়ে লক্ষ্যে পৌঁছাতে পারে


ধরুন আমাদের একটি রোবট আছে, যেটি বর্তমানে (0, 0) অবস্থানে (কার্টেসিয়ান প্লেন) বসে আছে। যদি আমাদের কাছে এর চালগুলির তালিকা থাকে যা এটি তৈরি করতে পারে, যার মধ্যে রয়েছে N(উত্তর), এস(দক্ষিণ), ডব্লু(পশ্চিম), এবং ই(পূর্ব)। যাইহোক, যদি রোবটটি আগে ছিল এমন একটি জায়গায় পৌঁছায়, তবে এটি একটি নতুন অদর্শিত স্থানে না পৌঁছানো পর্যন্ত একই দিকে চলতে থাকবে। আমাদের চেক করতে হবে যে এটি চলার পরে এটি (x, y) সমন্বয়ে শেষ হবে কি না।

সুতরাং, যদি ইনপুট মত হয়

রোবট চেক করার প্রোগ্রাম পাইথনে পরিদর্শন করা জায়গাগুলিতে অগ্রসর হয়ে লক্ষ্যে পৌঁছাতে পারে

moves =['N','N','E','N','W','S'], coord =[0, -1], তাহলে আউটপুট হবে True, যেহেতু রোবট দুটি যাবে উপরে, একটি ডানে, একটি আবার উপরে, একটি বাম এবং একটি নীচে, বর্তমান অবস্থানটি পরিদর্শন করা হলে, এটি নীচে চলে যাবে, তারপর সেই স্থানটিও পরিদর্শন করা হবে, আবার নীচে, তাই অবস্থানে থামুন (0, −1)

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

  • ny :=0, nx :=0

  • l :=একটি নতুন সেট, প্রাথমিকভাবে স্থানাঙ্ক সন্নিবেশ করান (0, 0)

  • প্রতিটি k নড়াচড়ার জন্য, করুন

    • k যদি "N" এর মত হয়, তাহলে

      • যখন (nx, ny) l, do

        • ny :=ny + 1

    • অন্যথায় যখন k "S" এর মত হয়, তখন

      • যখন (nx, ny) l, do

        • ny :=ny − 1

    • অন্যথায় যখন k "E" এর মত হয়, তখন

      • যখন (nx, ny) l, do

        • nx :=nx + 1

    • অন্যথায়,

      • যখন (nx, ny) l, do

        • nx :=nx − 1

    • l

      -এ যোগ করুন(nx, ny)
  • যখন coord (nx, ny), অন্যথা মিথ্যা

    এর মত হয় তখন true ফেরত দিন

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

উদাহরণ

class Solution:
   def solve(self, moves, coord):
      ny = nx = 0
      l = {(0, 0)}
      for k in moves:
         if k == "N":
            while (nx, ny) in l:
               ny += 1
         elif k == "S":
            while (nx, ny) in l:
               ny -= 1
         elif k == "E":
            while (nx, ny) in l:
               nx += 1
         else:
            while (nx, ny) in l:
               nx -= 1
         l.add((nx, ny))
      return coord[0] == nx and coord[1] == ny

ob = Solution()
moves = ['N','N','E','N','W','S']
coord = [0,-1]
print(ob.solve(moves, coord))

ইনপুট

['N','N','E','N','W','S'], [0,-1]

আউটপুট

True

  1. রোবট পরীক্ষা করার প্রোগ্রাম টার্গেট পজিশনে পৌঁছাতে পারে বা পাইথনে না

  2. প্রোগ্রাম চেক করার জন্য আমরা যে কোন শহর থেকে যে কোন শহরে যেতে পারি নাকি পাইথনে নেই

  3. পাইথনে k থেকে শুরু করে আমরা তালিকার শেষ প্রান্তে পৌঁছাতে পারি তা পরীক্ষা করার জন্য প্রোগ্রাম

  4. আমরা পাইথনে শব্দের তালিকা দিয়ে লক্ষ্য বানান করতে পারি বা না তা পরীক্ষা করার জন্য প্রোগ্রাম