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

पायथन में जांचें कि क्या हम निकटतम संपर्कों से कम से कम k दूरी पर खड़े हो सकते हैं


मान लीजिए हमारे पास एक स्ट्रिंग s और एक संख्या k है। अब स्ट्रिंग में प्रत्येक वर्ण या तो डॉट ('.') या 'x' है, जहां डॉट खाली स्थान इंगित करता है और 'x' व्यक्ति को इंगित करता है। हमें जांचना है कि क्या ऐसी स्थिति चुनना संभव है जहां हम और हमारे निकटतम व्यक्ति के बीच की दूरी कम से कम k हो। (यहां प्रत्येक पड़ोसी इंडेक्स के बीच की दूरी 1 है)।

उदाहरण के लिए, यदि इनपुट है s = "x...x..", k = 2, तो आउटपुट होगा True, क्योंकि हम s[2] या s[6] पर खड़े हो सकते हैं।

हल करने के चरण

  • pos := s में x का स्थान, यदि मौजूद नहीं है तो pos = -1।
  • यदि pos == -1 या pos >= k, तो True लौटाएं।
  • last_x := pos
  • dist_min := 2*k - 1
  • अनंत लूप करें:
    • next_x := s में last_x+1 से अंत तक x का स्थान (यदि x मौजूद नहीं है, तो -1)।
    • यदि next_x != -1, तो:
      • यदि next_x - last_x - 1 >= dist_min, तो True लौटाएं।
      • last_x := next_x
    • अन्यथा:
      • यदि len(s) - last_x - 1 >= k, तो True लौटाएं।
      • False लौटाएं।
  • None लौटाएं।

उदाहरण

class Solution:
    def solve(self, s, k):
        pos = s.find("x")
        if pos == -1 or pos >= k:
            return True
        last_x = pos
        dist_min = 2*k - 1
        while True:
            next_x = s.find("x", last_x+1)
            if next_x != -1:
                if next_x - last_x - 1 >= dist_min:
                    return True
                last_x = next_x
            else:
                if len(s) - last_x - 1 >= k:
                    return True
                return False
        return None

ob = Solution()
print(ob.solve("x...x..", 2))

इनपुट

"x...x..", 2

आउटपुट

True
  1. - पायथन में जांचें कि क्या इंडेक्स 0 से अंतिम पोजीशन तक पहुंचा जा सकता है

    मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची है जहां प्रत्येक संख्या अधिकतम कूद की संख्या दर्शाती है; हमें जांचना है कि क्या हम इंडेक्स 0 से शुरू करके अंतिम इंडेक्स तक पहुंच सकते हैं या नहीं। उदाहरण के लिए, यदि इनपुट nums = [2,5,0,2,0] है, तो आउटपुट True होगा, क्योंकि हम इंडेक्स 0 से 1 तक कूद स

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

    मान लीजिए हमारे पास n शहर हैं जिन्हें रेंज [0, n) में संख्या के रूप में दर्शाया गया है और हमारे पास एकतरफा सड़कों की एक सूची है जो एक शहर को दूसरे से जोड़ती है। हमें जांचना है कि क्या हम किसी शहर से किसी अन्य शहर तक पहुंच सकते हैं। उदाहरण के लिए, यदि इनपुट n = 3, roads = [[0,1],[0,2],[1,0],[1,2],[2

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

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