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

पायथन में एक पाठ में दिए गए दो शब्दों की न्यूनतम दूरी खोजने का कार्यक्रम

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

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

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

  • index1 :=null, index2 :=null

  • दूरी :=999999

  • पाठ में प्रत्येक अनुक्रमणिका idx और शब्द w के लिए, करें

    • अगर w, w1 के समान है, तो

      • अगर index2 शून्य नहीं है, तो

        • दूरी :=न्यूनतम दूरी और (|idx - index2| - 1)

      • index1 :=idx

    • अगर w, w2 के समान है, तो

      • यदि अनुक्रमणिका1 रिक्त नहीं है, तो

        • दूरी :=न्यूनतम दूरी और (|idx - index1| - 1)

      • index2 :=idx

  • यदि अनुक्रमणिका1 रिक्त नहीं है और अनुक्रमणिका2 रिक्त नहीं है, तो

    • वापसी की दूरी

  • वापसी -1

उदाहरण

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

def solve(text, w1, w2):
   index1 = None
   index2 = None
   distance = 2000000
   for idx, word in enumerate(text.split(" ")):
      if word == w1:
         if index2 is not None:
            distance = min(distance, abs(idx - index2) - 1)
         index1 = idx
      if word == w2:
         if index1 is not None:
            distance = min(distance, abs(idx - index1) - 1)
         index2 = idx
   if index1 is not None and index2 is not None:
      return distance
   return -1

text = "joy happy power happy joy joy power happy limit"
w1 = "power"
w2 = "limit"
print(solve(text, w1, w2))

इनपुट

"joy happy power happy joy joy power happy limit", "power", "limit"

आउटपुट

1

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

    मान लीजिए कि हमारे पास दो तार s1 और s2 हैं। हमें सबसे लंबी स्ट्रिंग s3 का आकार खोजना है जो s1 और s2 दोनों का विशेष विकल्प है। हम कह सकते हैं कि एक स्ट्रिंग x दूसरे स्ट्रिंग y का विशेष विकल्प है यदि x को y से 0 या अधिक वर्णों को हटाकर उत्पन्न किया जा सकता है। इसलिए, यदि इनपुट s1 =अनानास s2 =लोग जैस

  1. पायथन में एक बाइनरी ट्री में दो नोड्स के बीच की दूरी का पता लगाने का कार्यक्रम

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

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

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