কম্পিউটার টিউটোরিয়াল

পাইথনে কমপক্ষে 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
    • अन्यथा,
      • यदि s का आकार -last_x-1 >= k, तो
        • False वापस करें
  • null वापस करें

বेहतर বোঝার জন্য নিম্নলিখিত বাস্তবায়ন দেখুন:

উদাহরণ

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. পাইথনে দুটি স্ট্রিং ০ বা ১ এডিট ডিস্ট্যান্সে আছে কিনা যাচাই করার প্রোগ্রাম

  2. পাইথনে ইন্ডেক্স ০ থেকে শেষ ইন্ডেক্সে পৌঁছানো সম্ভব কিনা যাচাই করার প্রোগ্রাম

  3. পাইথনে যেকোনো সিটি থেকে যেকোনো সিটিতে যাওয়া সম্ভব কিনা যাচাই করার প্রোগ্রাম

  4. পাইথনে সূচক k থেকে শুরু করে লিস্টের শেষে পৌঁছানো সম্ভব কিনা যাচাই করার প্রোগ্রাম