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

जांचें कि क्या दो स्ट्रिंग्स के बीच संपादन दूरी पायथन में एक है

मान लीजिए कि हमारे पास दो तार s और t हैं। हमें यह जांचना है कि s और t के बीच की संपादन दूरी ठीक एक है या नहीं। यहां दो स्ट्रिंग्स के बीच एडिट का मतलब इन तीनों में से कोई भी है -

  • एक वर्ण डालें
  • एक चरित्र हटाएं
  • एक वर्ण बदलें

इसलिए, यदि इनपुट s ="hello" t ="heillo" जैसा है, तो आउटपुट True होगा क्योंकि हमें t प्राप्त करने के लिए s में एक वर्ण डालने की आवश्यकता होती है।

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

  • अगर |s का आकार - t का आकार|> 1, फिर
    • झूठी वापसी
  • edit_dist_cnt:=0, i:=0, j:=0
  • जबकि मैं
  • यदि s[i] t[j] के समान नहीं है, तो
    • यदि edit_dist_cnt 1 के समान है, तो
      • झूठी वापसी
    • यदि s का आकार> t का आकार, तो
      • i :=i + 1
    • अन्यथा जब s का आकार
    • j :=j + 1
  • अन्यथा,
    • i :=i + 1, j :=j + 1
  • edit_dist_cnt:=edit_dist_cnt + 1
  • अन्यथा,
    • i :=i + 1, j :=j + 1
  • यदि मैं
  • edit_dist_cnt:=edit_dist_cnt + 1
  • सही लौटें जब edit_dist_cnt 1 के समान हो, अन्यथा गलत
  • उदाहरण

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

    def solve(s, t):
       if abs(len(s) - len(t)) > 1:
          return false
       edit_dist_cnt = 0
       i = 0
       j = 0
       while i < len(s) and j < len(t):
          if s[i] != t[j]:
             if edit_dist_cnt == 1:
                return false
             if len(s) > len(t):
                i += 1
             elif len(s) < len(t):
                j += 1
             else:
                i += 1
                j += 1
             edit_dist_cnt +=1
          else:
             i += 1
             j += 1
       if i < len(s) or j < len(t):
          edit_dist_cnt += 1
       return edit_dist_cnt == 1
    s = "hello"
    t = "heillo"
    print(solve(s, t))

    इनपुट

    "hello", "heillo"

    आउटपुट

    True

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

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

    1. पायथन में दो त्रिभुजों की सर्वांगसमता जाँचने का कार्यक्रम

      इस ट्यूटोरियल में, हम दो त्रिभुजों की सर्वांगसमता की जाँच करने जा रहे हैं। हम एसएसएस, एसएएस और एएए की जांच करने जा रहे हैं। उन मानदंडों के आधार पर त्रिभुजों की समानता सिद्ध होती है। हमें प्रमेय के आधार पर विभिन्न स्थितियों की जांच करनी होगी। उन्हें नीचे दिए गए कोड में देखें। उदाहरण def side_side_si

    1. पायथन प्रोग्राम यह जांचने के लिए कि क्या दो सूचियों में कम से कम एक सामान्य तत्व है

      इस समस्या में हम दो उपयोगकर्ता इनपुट सूची का उपयोग करते हैं। हमारा काम यह जांचना है कि कहीं कोई कॉमन एलिमेंट तो नहीं है। हम बहुत ही सरल ट्रैवर्सिंग तकनीक का उपयोग करते हैं, दोनों सूची को पार करते हैं और पहली सूची और दूसरी सूची के प्रत्येक तत्व की जांच करते हैं। उदाहरण Input : A = [10, 20, 30, 50]