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

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


मान लीजिए हमारे पास एक रोबोट है, जो वर्तमान में स्थिति (0, 0) (कार्तीय तल) पर बैठा है। यदि हमारे पास उसकी चालों की एक सूची है जो वह बना सकता है, जिसमें N(उत्तर), S(दक्षिण), W(पश्चिम), और E(पूर्व) शामिल हैं। हालांकि, यदि रोबोट किसी ऐसे स्थान पर पहुंचता है जहां वह पहले जा चुका है, तो वह उसी दिशा में तब तक चलता रहेगा जब तक कि वह एक नए अनदेखे स्थान पर न पहुंच जाए। हमें जांचना है कि उसकी चालों के बाद वह (x, y) निर्देशांक पर समाप्त होगा या नहीं।

इसलिए, यदि इनपुट इस तरह है

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

moves = ['N','N','E','N','W','S'], coord = [0, -1], तो आउटपुट True होगा, क्योंकि रोबोट दो ऊपर जाएगा, एक दाएं, फिर एक ऊपर, एक बाएं और एक नीचे, चूंकि वर्तमान स्थान विज़िट किया गया है, यह नीचे जाएगा, फिर वह स्थान भी विज़िट किया गया है, फिर से नीचे, इसलिए स्थिति (0, -1) पर रुक जाएगा।

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

  • ny := 0, nx := 0

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

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

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

      • जब तक (nx, ny) l में है, करें

        • ny := ny + 1

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

      • जब तक (nx, ny) l में है, करें

        • ny := ny - 1

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

      • जब तक (nx, ny) l में है, करें

        • nx := nx + 1

    • अन्यथा,

      • जब तक (nx, ny) l में है, करें

        • nx := nx - 1

    • (nx, ny) को l में जोड़ें

  • यदि coord, (nx, ny) के समान है तो true वापस करें, अन्यथा false

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

उदाहरण

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) (कार्टेशियन प्लेन) पर बैठा है। यदि हमारे पास उसकी चालों की सूची है जो वह चल सकता है, जिसमें N(उत्तर), S(दक्षिण), W(पश्चिम), और E(पूर्व) हैं। हमें जांचना है कि क्या वह गंतव्य निर्देशांक (x, y) पर पहुंच सकता है। उदाहरण के लिए, यदि इनपुट mov

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

    मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची और एक अन्य संख्या k है। यदि हम इंडेक्स k से शुरू करते हैं और किसी भी इंडेक्स i पर, हम बाएं या दाएं ठीक nums[i] चरण जा सकते हैं। हमें जांचना है कि क्या हम सूची के अंत तक पहुंच सकते हैं या नहीं। उदाहरण के लिए, यदि इनपुट है nums = [0, 0, 2, 1, 3, 3, 1,

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

    मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची और एक अन्य संख्या k है। यदि हम इंडेक्स k से शुरू करते हैं और किसी भी इंडेक्स i पर, हम बाएं या दाएं ठीक nums[i] चरण जा सकते हैं। हमें जांचना है कि क्या हम सूची के अंत तक पहुंच सकते हैं या नहीं। उदाहरण के लिए, यदि इनपुट है nums = [0, 0, 2, 1, 3, 3, 1,