ধরুন আমাদের একটি রোবট আছে, যেটি বর্তমানে (0, 0) অবস্থানে (কার্টেসিয়ান প্লেন) বসে আছে। যদি আমাদের কাছে তার চালগুলির তালিকা থাকে যা এটি তৈরি করতে পারে, যার মধ্যে রয়েছে N(উত্তর), এস(দক্ষিণ), ডব্লু(পশ্চিম), এবং ই(পূর্ব)। এটি গন্তব্য স্থানাঙ্কে (x, y) পৌঁছাতে পারে কিনা তা আমাদের পরীক্ষা করতে হবে।
সুতরাং, যদি ইনপুটটি মুভের মত হয় =['N','N','E','E','S'], (x,y) =(2,1), তাহলে আউটপুট হবে True,
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- temp_coord :=[0,0]
- প্রতিটি মুভের জন্য, করুন
- যদি সরানো হয় "N", তাহলে
- temp_coord[1] :=temp_coord[1] + 1
- অন্যথায় যখন সরানো হয় "S", তারপর
- temp_coord[1] :=temp_coord[1] - 1
- অন্যথায় যখন সরানো হয় "E" এর মতো, তারপর
- temp_coord[0] :=temp_coord[0] + 1
- অন্যথায় যখন সরানো হয় "W" এর মতো, তারপর
- temp_coord[0] :=temp_coord[0] - 1
- যদি সরানো হয় "N", তাহলে
- True রিটার্ন করুন যখন temp_coord[0] coord[0] এর মত হয় এবং temp_coord[1] একই ascoord[1] অন্যথায় মিথ্যা হয়।
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution: def solve(self, moves, coord): temp_coord = [0,0] for move in moves: if move == "N": temp_coord[1] += 1 elif move == "S": temp_coord[1] -= 1 elif move == "E": temp_coord[0] += 1 elif move == "W": temp_coord[0] -= 1 return temp_coord[0] == coord[0] and temp_coord[1] == coord[1] ob = Solution() moves = ['N','N','E','E','S'] coord = [2,1] print(ob.solve(moves, coord))
ইনপুট
['N','N','E','E','S'], [2,1]
আউটপুট
True