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

पायथन में दो शब्दों के बीच सबसे छोटी दूरी

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

इसलिए, यदि इनपुट टेक्स्ट ="कैट डॉग एबीसीडी डॉग कैट कैट एबीसीडी डॉग wxyz", वर्ड0 ="एबीसीडी", वर्ड1 ="wxyz" जैसा है, तो आउटपुट 1 होगा, क्योंकि "डॉग" के बीच एक शब्द है। abcd" और "wxyz"

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

  • word_list :=टेक्स्ट से शब्दों की एक सूची
  • उत्तर:=शब्द_सूची का आकार
  • एल:=शून्य
  • R के लिए 0 से लेकर word_list-1 के आकार तक के लिए
    • अगर word_list[R] word0 है या word_list[R] word1 है, तो
      • यदि L रिक्त नहीं है और word_list[R] word_list[L] नहीं है, तो
        • उत्तर :=न्यूनतम उत्तर और R - L - 1
      • एल:=आर
  • वापसी -1 यदि उत्तर शब्द_सूची के आकार के समान है अन्यथा उत्तर

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

उदाहरण

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. पायथन में एक बाइनरी ट्री में दो नोड्स के बीच की दूरी का पता लगाने का कार्यक्रम

    मान लीजिए, हमें एक बाइनरी ट्री दिया जाता है और हमें बाइनरी ट्री में दो नोड्स के बीच की दूरी का पता लगाने के लिए कहा जाता है। हम दो नोड्स के बीच के किनारों को एक ग्राफ की तरह ढूंढते हैं और किनारों की संख्या या उनके बीच की दूरी को वापस कर देते हैं। पेड़ के नोड की संरचना नीचे दी गई है - data : <inte

  1. दो स्ट्रिंग्स से असामान्य शब्द खोजने के लिए पायथन प्रोग्राम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें दो तार दिए गए हैं, हमें दिए गए तार से असामान्य शब्द निकालने होंगे। आइए अब नीचे दिए गए कार्यान्वयन में समाधान देखें - उदाहरण # uncommon words def find(A, B):    # count    count = {}   &n

  1. दो सूचियों के बीच अंतर को सूचीबद्ध करने के लिए पायथन प्रोग्राम।

    इस समस्या में दो सूचियाँ दी गई हैं। हमारा कार्य दो सूचियों के बीच अंतर प्रदर्शित करना है। पायथन सेट () विधि प्रदान करता है। हम यहां इस विधि का उपयोग करते हैं। एक सेट एक अनियंत्रित संग्रह है जिसमें कोई डुप्लिकेट तत्व नहीं है। सेट ऑब्जेक्ट गणितीय संचालन जैसे संघ, प्रतिच्छेदन, अंतर और सममित अंतर का भी