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

पायथन में देखे गए स्थानों पर चलते हुए रोबोट की जाँच करने का कार्यक्रम लक्ष्य तक पहुँच सकता है

मान लीजिए हमारे पास एक रोबोट है, जो वर्तमान में (0, 0) (कार्तीय तल) पर बैठा है। यदि हमारे पास एन (उत्तर), एस (दक्षिण), डब्ल्यू (पश्चिम), और ई (पूर्व) युक्त इसकी चाल की सूची है। हालाँकि, यदि रोबोट किसी ऐसे स्थान पर पहुँचता है जहाँ वह पहले रहा है, तो वह उसी दिशा में आगे बढ़ता रहेगा जब तक कि वह एक नए अज्ञात स्थान पर नहीं पहुँच जाता। हमें यह जांचना होगा कि इसके चलने के बाद यह (x, y) निर्देशांक पर समाप्त होगा या नहीं।

तो, अगर इनपुट पसंद है

पायथन में देखे गए स्थानों पर चलते हुए रोबोट की जाँच करने का कार्यक्रम लक्ष्य तक पहुँच सकता है

चालें =['एन', 'एन', 'ई', 'एन', 'डब्ल्यू', 'एस'], समन्वय =[0, -1], तो आउटपुट सही होगा, क्योंकि रोबोट दो जाएगा ऊपर, एक दाएँ, एक बार फिर, एक बाएँ और एक नीचे, जैसा कि वर्तमान स्थिति का दौरा किया जाता है, यह नीचे जाएगा, फिर उस स्थान का भी दौरा किया जाता है, फिर से नीचे, इसलिए स्थिति पर रुकें (0, -1)

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

  • एनवाई:=0, एनएक्स:=0

  • l :=एक नया सेट, प्रारंभ में निर्देशांक डालें (0, 0)

  • चाल में प्रत्येक k के लिए, करें

    • यदि k "N" के समान है, तो

      • जबकि (एनएक्स, एनवाई) एल में, करो

        • एनवाई:=एनवाई + 1

    • अन्यथा जब k, "S" के समान हो, तब

      • जबकि (एनएक्स, एनवाई) एल में, करो

        • ny :=ny - 1

    • अन्यथा जब k, "E" के समान हो, तब

      • जबकि (एनएक्स, एनवाई) एल में, करो

        • एनएक्स:=एनएक्स + 1

    • अन्यथा,

      • जबकि (एनएक्स, एनवाई) एल में, करो

        • एनएक्स:=एनएक्स - 1

    • जोड़ें (एनएक्स, एनवाई) एल में

  • जब समन्वय (एनएक्स, एनवाई) के समान होता है, अन्यथा झूठा

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

उदाहरण

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. रोबोट की जाँच करने का कार्यक्रम पायथन में लक्ष्य की स्थिति तक पहुँच सकता है या नहीं

    मान लीजिए हमारे पास एक रोबोट है, जो वर्तमान में (0, 0) (कार्तीय तल) पर बैठा है। यदि हमारे पास एन (उत्तर), एस (दक्षिण), डब्ल्यू (पश्चिम), और ई (पूर्व) युक्त इसकी चालों की सूची है। हमें यह जांचना होगा कि क्या यह गंतव्य निर्देशांक (x, y) पर पहुंच सकता है। इसलिए, यदि इनपुट चाल =[एन, एन, ई, ई, एस], (एक्

  1. जाँच करने के लिए कार्यक्रम हम पायथन में k से शुरू करके सूची के अंत तक पहुँच सकते हैं

    मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक और दूसरी संख्या k कहा जाता है। यदि हम अनुक्रमणिका k से प्रारंभ करते हैं और किसी अनुक्रमणिका i पर, तो हम ठीक-ठीक अंकों [i] चरणों की संख्या से बाएँ या दाएँ जा सकते हैं। हमें यह जांचना होगा कि हम सूची के अंत तक पहुंच सकते हैं या नहीं। इसलिए, यदि इ

  1. जाँच करने के लिए कार्यक्रम हम शब्दों की एक सूची द्वारा लक्ष्य की वर्तनी कर सकते हैं या नहीं पायथन में

    मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक और दूसरी संख्या k कहा जाता है। यदि हम अनुक्रमणिका k से प्रारंभ करते हैं और किसी अनुक्रमणिका i पर, तो हम ठीक-ठीक अंकों [i] चरणों की संख्या से बाएँ या दाएँ जा सकते हैं। हमें यह जांचना होगा कि हम सूची के अंत तक पहुंच सकते हैं या नहीं। इसलिए, यदि इ