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

পাইথনে রোবট ভিজিট করা স্পটে ঘুরে টার্গেটে পৌঁছাতে পারে কিনা যাচাই করার প্রোগ্রাম


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

যদি ইনপুট হয়:

পাইথনে রোবট ভিজিট করা স্পটে ঘুরে টার্গেটে পৌঁছাতে পারে কিনা যাচাই করার প্রোগ্রাম

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

এটি সমাধান করতে আমরা নিম্নলিখিত ধাপগুলি অনুসরণ করব:

  • ny := 0, nx := 0

  • l := একটি নতুন সেট, শুরুতে (0, 0) কোঅর্ডিনেট যোগ করুন।

  • moves-এ থাকা প্রতিটি k-এর জন্য:

    • যদি k == "N" হয়, তবে:

      • যখন (nx, ny) l-এ থাকে, ny := ny + 1

    • অন্যথায় যদি k == "S" হয়, তবে:

      • যখন (nx, ny) l-এ থাকে, ny := ny - 1

    • অন্যথায় যদি k == "E" হয়, তবে:

      • যখন (nx, ny) l-এ থাকে, nx := nx + 1

    • অন্যথায়:

      • যখন (nx, ny) l-এ থাকে, nx := nx - 1

    • (nx, ny) কে l-এ যোগ করুন।

  • coord == (nx, ny) হলে true, অন্যথায় false ফেরত দিন।

বेहतर বোঝার জন্য নিচের ইমপ্লিমেন্টেশনটি দেখুন:

উদাহরণ

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. পাইথনে শব্দের তালিকা দিয়ে টার্গেট বানানো সম্ভব কিনা যাচাই করার প্রোগ্রাম