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

पायथन में टेक्स्ट में दो दिए गए शब्दों की न्यूनतम दूरी ढूंढने का प्रोग्राम

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

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

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

  • index1 := null, index2 := null

  • distance := 999999

  • टेक्स्ट में प्रत्येक इंडेक्स idx और शब्द w के लिए, करें

    • यदि w, w1 के समान है, तो

      • यदि index2 null नहीं है, तो

        • distance := distance और (|idx - index2| - 1) का न्यूनतम

      • index1 := idx

    • यदि w, w2 के समान है, तो

      • यदि index1 null नहीं है, तो

        • distance := distance और (|idx - index1| - 1) का न्यूनतम

      • index2 := idx

  • यदि index1 null नहीं है और index2 null नहीं है, तो

    • distance लौटाएं

  • -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. Python में सभी बिंदुओं को जोड़ने की न्यूनतम लागत खोजने का प्रोग्राम Python में सभी बिंदुओं को जोड़ने की न्यूनतम लागत खोजने का प्रोग्राम

    मान लीजिए हमारे पास points नामक एक ऐरे है जिसमें कुछ पॉइंट्स (x, y) के रूप में हैं। अब दो पॉइंट्स (xi, yi) और (xj, yj) को जोड़ने की लागत उनके बीच की मैनहट्टन दूरी है, सूत्र है |xi - xj| + |yi - yj|। हमें सभी पॉइंट्स को जोड़ने की न्यूनतम लागत ढूंढनी है। उदाहरण के लिए, यदि इनपुट है points = [(0,0),(

  1. सभी शिपमेंट पूरा करने के लिए कुल लागत ज्ञात करने का पायथन प्रोग्राम सभी शिपमेंट पूरा करने के लिए कुल लागत ज्ञात करने का पायथन प्रोग्राम

    मान लीजिए हमारे पास ports नामक सूचियों की एक सूची है, जहां ports[i] उन पोर्ट्स की सूची दर्शाता है जिनसे पोर्ट i जुड़ा हुआ है। हमारे पास shipments नामक सूचियों की एक और सूची है जहां प्रत्येक सूची [i, j] क्रम में है जो दर्शाता है कि पोर्ट i से पोर्ट j तक एक शिपमेंट अनुरोध है। और पोर्ट i से पोर्ट j तक

  1. - पायथन में सभी स्टॉप्स से गुजरने के लिए आवश्यक न्यूनतम बसों की संख्या खोजने का प्रोग्राम

    मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची है जो एक लाइन पर बस स्टॉप दिखाती है जहां nums[i] स्टेशन i पर बस के पहुंचने का समय दिखाता है। चूंकि बसें केवल आगे बढ़ सकती हैं, हमें सभी स्टॉप्स से गुजरने के लिए आवश्यक न्यूनतम बसों की संख्या ढूंढनी है। उदाहरण के लिए, यदि इनपुट है nums = [1, 2, 7, 9,