কম্পিউটার

রোবট পাইথনে আবদ্ধ বাক্সের ভিতরে চলছে কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম


ধরুন আমাদের একটি স্ট্রিং s আছে, যা একটি রোবটের চালকে প্রতিনিধিত্ব করে। রোবট বর্তমানে (0, 0) অবস্থানে রয়েছে এবং এটি উত্তর দিকে মুখ করে আছে। সরানো স্ট্রিং-এ এই অক্ষর থাকতে পারে

  • "F" দিক এগিয়ে যেতে, এক ইউনিট
  • "L" 90 ডিগ্রি’ বামে ঘোরানোর জন্য
  • "R" 90 ডিগ্রি’ ডানদিকে ঘোরানোর জন্য

তাই রোবট যদি বারবার s-এর ক্রমানুসারে চলে, তাহলে আমাদের পরীক্ষা করতে হবে প্লেনে এমন কিছু বাক্স আছে যেটা থেকে রোবট কখনও চলে যায় না।

সুতরাং, যদি ইনপুটটি s ="FFRFRFFRF" এর মত হয়, তাহলে আউটপুট হবে True, কারণ রোবট 2 ইউনিট উত্তর দিকে নিয়ে যায়। তারপর 90 ডানদিকে ঘুরুন এবং একটি ব্লক সরান, তারপর আবার 90 ডিগ্রি ডানদিকে ঘোরান এবং 2 ইউনিট দক্ষিণে তারপর আবার ডানদিকে সরান, তাই এটি একটি বাক্স তৈরি করছে।

রোবট পাইথনে আবদ্ধ বাক্সের ভিতরে চলছে কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম

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

  • মুভস :=একটি অ্যারে যেখানে দিকনির্দেশ রয়েছে [[0, -1], [1, 0], [0, 1], [-1, 0]]
  • r, c :=0, 0
  • d :=0
  • 0 থেকে 3 রেঞ্জের জন্য, করুন
    • 0 থেকে s আকারের রেঞ্জের জন্য,
        করুন
      • যদি s[i] "F" এর মত হয়, তাহলে
        • (r, c) :=(r + moves[d, 0], c + moves[d, 1])
      • অন্যথায় যখন s[i] "L" এর মত হয়, তখন
        • d :=(d + 3) মোড 4
      • অন্যথায় যখন s[i] "R" এর মত হয়, তখন
        • d :=(d + 1) মোড 4
    • যদি r 0 এর মত হয় এবং c 0 এর মত হয়, তাহলে
      • সত্য ফেরান
  • মিথ্যে ফেরত দিন

উদাহরণ

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

def solve(s):
   moves = [[0, -1], [1, 0], [0, 1], [-1, 0]]
   r, c = 0, 0
   d = 0

   for times in range(4):
      for i in range(len(s)):
         if s[i] == "F":
            r, c = r + moves[d][0], c + moves[d][1]
         elif s[i] == "L":
            d = (d + 3) % 4
         elif s[i] == "R":
            d = (d + 1) % 4
      if r == 0 and c == 0:
         return True
   return False

s = "FFRFRFFRF"
print(solve(s))

ইনপুট

"FFRFRFFRF"

আউটপুট

True

  1. প্রদত্ত গাছটি পাইথনে সিমেট্রিক ট্রি কি না তা পরীক্ষা করার জন্য প্রোগ্রাম

  2. পাইথনে একটি বাইনারি ট্রি বিএসটি কি না তা পরীক্ষা করার জন্য প্রোগ্রাম

  3. পাইথনে একটি বাইনারি গাছ সম্পূর্ণ কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম

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