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

दो तारों की जाँच करने का कार्यक्रम 0 या 1 संपादित दूरी दूर है या नहीं पायथन में

मान लीजिए कि हमारे पास दो तार S और T हैं, हमें यह जांचना है कि वे एक या शून्य संपादन दूरी दूर हैं या नहीं। एक संपादन ऑपरेशन को एक चरित्र को हटाने, एक चरित्र जोड़ने या किसी अन्य चरित्र के साथ एक चरित्र को बदलने के रूप में परिभाषित किया जा सकता है।

इसलिए, यदि इनपुट एस ="हैलो", टी ="हैलो" जैसा है, तो आउटपुट ट्रू होगा, क्योंकि इन दो स्ट्रिंग्स में 1 की संपादन दूरी है।

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

  • m :=S का आकार, n :=T का आकार
  • i :=0, j :=0
  • गिनती :=0
  • अगर |एम - एन|> 1, फिर
    • झूठी वापसी
  • जबकि मैं <एम और जे <एन, करते हैं
    • यदि S[i], T[j] के समान नहीं है, तो
      • यदि गिनती 1 के समान है, तो
        • झूठी वापसी
      • अगर एम <एन, तो
        • j :=j + 1
      • अन्यथा जब m> n, तब
        • i :=i + 1
      • अन्यथा,
        • i :=i + 1, j :=j + 1
      • गिनती :=गिनती + 1
    • अन्यथा,
      • i :=i + 1, j :=j + 1
  • सही लौटें

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

उदाहरण

class Solution:
   def solve(self, S, T):
      m, n = len(S), len(T)
      i, j = 0, 0
      count = 0
      if abs(m - n) > 1:
         return False
      while i < m and j < n:
         if S[i] != T[j]:
            if count == 1:
               return False
            if m < n:
               j += 1
            elif m > n:
               i += 1
            else:
               i += 1
               j += 1
            count += 1
         else:
            i += 1
            j += 1
      return True
ob = Solution()
S = "hello"
T = "hallo"
print(ob.solve(S, T))

इनपुट

"hello", "hallo"

आउटपुट

True

  1. बिंदुओं की जाँच करने के लिए प्रोग्राम अवतल बहुभुज बना रहे हैं या नहीं पायथन में

    मान लीजिए कि हमारे पास बहुभुज के बाहरी बिंदु दक्षिणावर्त क्रम में हैं। हमें यह जांचना है कि ये बिंदु उत्तल बहुभुज बना रहे हैं या नहीं। एक बहुभुज को अवतल कहा जाता है यदि उसका कोई एक आंतरिक कोण 180° से अधिक हो। इस आरेख से यह स्पष्ट है कि सीडीई को छोड़कर प्रत्येक तीन क्रमागत बिंदुओं के लिए आंतरिक को

  1. बिंदुओं की जाँच करने का कार्यक्रम पायथन में उत्तल पतवार बना रहा है या नहीं

    मान लीजिए कि हमारे पास बहुभुज के बाहरी बिंदु दक्षिणावर्त क्रम में हैं। हमें यह जांचना होगा कि ये बिंदु उत्तल पतवार बना रहे हैं या नहीं। इस आरेख से यह स्पष्ट है कि प्रत्येक तीन क्रमागत बिंदुओं के लिए आंतरिक कोण 180° से अधिक नहीं होता है। इसलिए यदि सभी कोण 180° से अधिक नहीं हैं तो बहुभुज उत्तल पतवा

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

    मान लीजिए हमारे पास दो बाइनरी ट्री हैं; हमें यह जांचना होगा कि दोनों पेड़ों में बाएं से दाएं पत्तों का क्रम समान है या नहीं। तो, अगर इनपुट पसंद है तब आउटपुट सही होगा क्योंकि दोनों पेड़ों के लिए अनुक्रम [2, 6] है। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे: c :=एक नई सूची एक फ़ंक्शन को परिभ