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

পাইথনে দুটি শব্দের মধ্যে সর্বনিম্ন দূরত্ব খুঁজুন


मान लीजिए हमारे पास दो स्ट्रिंग्स word0 और word1 और एक टेक्स्ट है। हमें दिए गए टेक्स्ट में word0 और word1 के किन्हीं दो घटनाओं के बीच सबसे छोटी दूरी ढूंढनी है। यहां दूरी शब्दों की संख्या में मापी जाती है। यदि वे टेक्स्ट में मौजूद नहीं हैं तो -1 लौटाएं।

यदि इनपुट text = "cat dog abcd dog cat cat abcd dog wxyz", word0 = "abcd", word1 = "wxyz" जैसा है, तो आउटपुट 1 होगा, क्योंकि "abcd" और "wxyz" के बीच एक शब्द "dog" है।

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

  • word_list := टेक्स्ट से शब्दों की सूची
  • ans := word_list का आकार
  • L := null
  • R को 0 से word_list के आकार - 1 तक के लिए, करें:
    • यदि word_list[R] word0 या word1 है, तो
      • यदि L null नहीं है और word_list[R], word_list[L] नहीं है, तो
        • ans := min(ans, R - L - 1)
      • L := R
  • यदि ans, word_list के आकार के बराबर है तो -1 लौटाएं अन्यथा ans

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

उदाहरण

class Solution:
    def solve(self, text, word0, word1):
        word_list = text.split()
        ans = len(word_list)
        L = None
        for R in range(len(word_list)):
            if word_list[R] == word0 or word_list[R] == word1:
                if L is not None and word_list[R] != word_list[L]:
                    ans = min(ans, R - L - 1)
                L = R
        return -1 if ans == len(word_list) else ans

ob = Solution()
text = "cat dog abcd dog cat cat abcd dog wxyz"
word0 = "abcd"
word1 = "wxyz"
print(ob.solve(text, word0, word1))

इनपुट

"cat dog abcd dog cat cat abcd dog wxyz", "abcd", "wxyz"

आउटपुट

1

  1. পাইথনে বাইনারি ট্রিতে দুটি নোডের মধ্যকার দূরত্ব খুঁজে বের করার প্রোগ্রাম

  2. দুই স্ট্রিং থেকে অনকমন ওয়ার্ড বের করার পাইথন প্রোগ্রাম

  3. পাইথনে Minkowski দূরত্ব নির্ণয়

  4. পাইথনে দুটি লিস্টের পার্থক্য (Difference) বের করার প্রোগ্রাম