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

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

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

  • "F" आगे की दिशा में एक इकाई चलने के लिए
  • "L" 90 डिग्री बाएं घूमने के लिए
  • "R" 90 डिग्री दाएं घूमने के लिए

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

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

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

  • moves := एक सरणी जिसमें दिशाएं हों [[0, -1], [1, 0], [0, 1], [-1, 0]]
  • r, c := 0, 0
  • d := 0
  • times के लिए 0 से 3 तक की रेंज में, करें:
    • i के लिए 0 से s के आकार तक की रेंज में, करें:
      • यदि s[i] "F" के समान है, तो:
        • (r, c) := (r + moves[d][0], c + moves[d][1])
      • अन्यथा जब s[i] "L" के समान है, तो:
        • d := (d + 3) mod 4
      • अन्यथा जब s[i] "R" के समान है, तो:
        • d := (d + 1) mod 4
    • यदि r 0 के समान है और c 0 के समान है, तो:
      • True लौटाएं
  • False लौटाएं

उदाहरण

बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:

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 होने की जांच करने का प्रोग्राम पायथन में बाइनरी ट्री के BST होने की जांच करने का प्रोग्राम

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

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

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

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

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