Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में रोबोट एक बाउंडेड बॉक्स के अंदर घूम रहा है या नहीं, यह जांचने के लिए प्रोग्राम

मान लीजिए कि हमारे पास एक स्ट्रिंग है, जो रोबोट की चाल का प्रतिनिधित्व करती है। रोबोट वर्तमान में (0, 0) स्थिति में है और इसका मुख उत्तर की ओर है। मूव स्ट्रिंग s में ये वर्ण हो सकते हैं

  • "F" दिशा आगे बढ़ने के लिए, एक इकाई
  • "L" 90 डिग्री 'बाएं घुमाने के लिए
  • "R" 90 डिग्री 'दाएं घुमाने के लिए

इसलिए यदि रोबोट s क्रम में बार-बार चालें चलता है, तो हमें यह जांचना होगा कि क्या विमान में कोई बॉक्स है जिसमें रोबोट कभी नहीं जाता है या नहीं।

इसलिए, यदि इनपुट s ="FFRFRFFFRF" जैसा है, तो आउटपुट सही होगा, क्योंकि रोबोट 2 इकाइयों को उत्तर की ओर ले जाता है। फिर 90 दाएँ मुड़ता है और एक ब्लॉक घुमाता है, फिर 90 डिग्री दाएँ घुमाता है और 2 इकाई दक्षिण और फिर दाएँ घुमाता है, इसलिए यह एक बॉक्स बना रहा है।

पायथन में रोबोट एक बाउंडेड बॉक्स के अंदर घूम रहा है या नहीं, यह जांचने के लिए प्रोग्राम

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • चलती है:=एक सरणी जिसमें दिशाएं होती हैं [[0, -1], [1, 0], [0, 1], [-1, 0]]
  • r, c :=0, 0
  • घ :=0
  • 0 से 3 के बीच के समय के लिए, करें
    • i के लिए 0 से लेकर s के आकार तक के लिए, करें
      • यदि s[i] "F" के समान है, तो
        • (r, c) :=(r + मूव्स[d, 0], c + मूव्स[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. पायथन में बाइनरी ट्री BST है या नहीं, यह जांचने के लिए प्रोग्राम

    मान लीजिए हमारे पास बाइनरी ट्री है; हमें यह जांचना होगा कि यह बाइनरी सर्च ट्री है या नहीं। जैसा कि हम जानते हैं कि बीएसटी में निम्नलिखित गुण होते हैं - इसके बाएँ उपप्रकार के सभी नोड वर्तमान नोड मान से छोटे हैं इसके दाहिने सबट्री के सभी नोड वर्तमान नोड मान से बड़े हैं ये गुण सभी नोड्स के लिए पुनरावर

  1. पायथन में बाइनरी ट्री पूर्ण है या नहीं यह जांचने के लिए प्रोग्राम

    मान लीजिए हमारे पास एक बाइनरी ट्री है; हमें यह जांचना होगा कि यह पूर्ण बाइनरी ट्री है या नहीं। जैसा कि हम एक पूर्ण बाइनरी ट्री में जानते हैं कि संभवतः अंतिम को छोड़कर स्तर नोड्स से भरे हुए हैं और अंतिम स्तर में सभी नोड्स जितना संभव हो सके छोड़े गए हैं। तो, अगर इनपुट पसंद है तो आउटपुट सही होगा इ

  1. पायथन में दिया गया ग्राफ द्विदलीय है या नहीं, यह जांचने के लिए कार्यक्रम

    मान लीजिए कि हमारे पास एक अप्रत्यक्ष ग्राफ है, हमें यह जांचना है कि ग्राफ द्विदलीय है या नहीं। जैसा कि हम जानते हैं कि एक ग्राफ द्विदलीय होता है जब हम ग्राफ के नोड्स को दो सेट ए और बी में विभाजित कर सकते हैं जैसे कि ग्राफ के प्रत्येक किनारे {यू, वी} में ए में एक नोड और बी में दूसरा नोड वी होता है।