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

पायथन में दो स्ट्रिंग्स के 0 या 1 एडिट डिस्टेंस पर होने की जांच करने का प्रोग्राम


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

इसलिए, यदि इनपुट S = "hello", T = "hallo" जैसा है, तो आउटपुट True होगा, क्योंकि इन दो स्ट्रिंग्स का एडिट डिस्टेंस 1 है।

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

  • m := S का आकार, n := T का आकार
  • i := 0, j := 0
  • count := 0
  • यदि |m - n| > 1, तो
    • False वापस करें
  • जब तक i < m और j < n, करें
    • यदि S[i], T[j] के समान नहीं है, तो
      • यदि count, 1 के समान है, तो
        • False वापस करें
      • यदि m < n, तो
        • j := j + 1
      • अन्यथा जब m > n, तो
        • i := i + 1
      • अन्यथा,
        • i := i + 1, j := j + 1
      • count := count + 1
    • अन्यथा,
      • i := i + 1, j := j + 1
  • True वापस करें

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

उदाहरण

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

    मान लीजिए हमारे पास n एलिमेंट्स की एक सूची है; हमें सूची में प्रत्येक एलिमेंट को n बार दोहराना है। तो, यदि इनपुट nums = [1,5,8,3] है, तो आउटपुट [1, 1, 1, 1, 5, 5, 5, 5, 8, 8, 8, 8, 3, 3, 3, 3] होगा। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे: n := nums का आकार ret := एक नई सूची nums में प्रत्ये

  1. पायथन में दाएं k बार घुमाकर ith एलिमेंट ढूंढने का प्रोग्राम पायथन में दाएं k बार घुमाकर ith एलिमेंट ढूंढने का प्रोग्राम

    मान लीजिए हमारे पास nums नामक एक ऐरे है, और एक मान k और दूसरा मान i है। हमें nums के एलिमेंट्स को दाएं k बार घुमाने के बाद इंडेक्स i पर एलिमेंट ढूंढना है। तो, यदि इनपुट nums = [2,7,9,8,10] k = 3 i = 2 है, तो आउटपुट 10 होगा क्योंकि तीसरे रोटेशन के बाद ऐरे [9,8,10,2,7] होगा, इसलिए अब ith एलिमेंट nums[

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

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