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

पायथन में पैटर्न खोजें और बदलें

मान लीजिए हमारे पास शब्दों की एक सूची और एक पैटर्न है, और हमें यह ढूंढना है कि words में कौन से शब्द पैटर्न से मेल खाते हैं। यहां एक शब्द पैटर्न से मेल खाता है यदि अक्षरों का एक क्रमपरिवर्तन p मौजूद है ताकि पैटर्न में प्रत्येक अक्षर x को p(x) से बदलने के बाद, हमें लक्ष्य शब्द मिले। हमें words में उन शब्दों की सूची ढूंढनी है जो दिए गए पैटर्न से मेल खाते हैं।

इसलिए उदाहरण के लिए, यदि इनपुट ["abc","deq","mee","aqq","dkd","ccc"] जैसा है और पैटर्न "abb" है, तो आउटपुट ["mee", "aqq"] होगा, यहां mee और aqq पैटर्न "abb" की शैली से मेल खा रहे हैं। लेकिन "ccc" एक पैटर्न नहीं है, क्योंकि यह एक क्रमपरिवर्तन नहीं है।

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

  • एक convert() मेथड परिभाषित करें। यह इनपुट के रूप में शब्द लेगा, यह इस तरह कार्य करेगा -
  • counter := 1, s := खाली स्ट्रिंग
  • s := s + counter का स्ट्रिंग समकक्ष
  • i के लिए 1 से शब्द की लंबाई - 1 तक की रेंज में
    • j := i - 1
    • जबकि j >= 0
      • यदि word[j] word[i] है, तो ब्रेक करें
      • j को 1 से घटाएं
    • यदि j > -1, तो s := s + s[j], अन्यथा counter को 1 से बढ़ाएं और s := s + counter मान को स्ट्रिंग के रूप में
  • s लौटाएं
  • वास्तविक विधि इस तरह होगी
  • एक खाली सरणी word_num बनाएं, एक और खाली सरणी res बनाएं
  • words में प्रत्येक तत्व i के लिए -
    • convert(i) को word_num में डालें
  • pattern := convert(pattern)
  • i के लिए 0 से words की लंबाई - 1 तक की रेंज में
    • यदि words_num[i] = pattern, तो words[i] को res में डालें
  • res लौटाएं

उदाहरण

class Solution(object):
    def findAndReplacePattern(self, words, pattern):
        words_num = []
        result = []
        for i in words:
            words_num.append(self.convert(i))
        pattern = self.convert(pattern)
        for i in range(len(words)):
            if words_num[i] == pattern:
                result.append(words[i])
        return result
    def convert(self, word):
        counter = 1
        s = ""
        s += str(counter)
        for i in range(1, len(word)):
            j = i - 1
            while j >= 0:
                if word[j] == word[i]:
                    break
                j -= 1
            if j > -1:
                s += s[j]
            else:
                counter += 1
                s += str(counter)
        return s

ob = Solution()
print(ob.findAndReplacePattern(["abc","deq","mee","aqq","dkd","ccc"], "abb"))

इनपुट

["abc","deq","mee","aqq","dkd","ccc"] "abb"

आउटपुट

['mee', 'aqq']
  1. Selenium और Python का उपयोग करके एलिमेंट और टेक्स्ट कैसे खोजें? Selenium और Python का उपयोग करके एलिमेंट और टेक्स्ट कैसे खोजें?

    हम Selenium WebDriver के साथ एलिमेंट और उसके टेक्स्ट को ढूंढ सकते हैं। सबसे पहले हमें id, classname, css जैसे किसी भी लोकेटर की मदद से एलिमेंट की पहचान करनी होगी। फिर टेक्स्ट प्राप्त करने के लिए हमें text मेथड की मदद लेनी होगी। सिंटैक्स s = driver.find_element_by_css_selector(h4).text यहां drive

  1. Python में BST का माध्यिका O(n) समय और O(1) स्थान में ढूंढना Python में BST का माध्यिका O(n) समय और O(1) स्थान में ढूंढना

    मान लीजिए हमारे पास एक बाइनरी सर्च ट्री (BST) है, हमें उसका माध्यिका ढूंढना है। हम जानते हैं कि सम संख्या में नोड्स के लिए, माध्यिका = ((n/2वां नोड + (n+1)/2वां नोड) / 2। विषम संख्या में नोड्स के लिए, माध्यिका = (n+1)/2वां नोड। तो, यदि इनपुट इस तरह है तो आउटपुट 7 होगा। इसे हल करने के लिए, हम इन चरण

  1. पायथन में OpenCV का उपयोग करके कंटूर खोजें और ड्रा करें पायथन में OpenCV का उपयोग करके कंटूर खोजें और ड्रा करें

    छवि विश्लेषण के उद्देश्य के लिए हम Opencv (ओपन सोर्स कंप्यूटर विजन लाइब्रेरी) पायथन लाइब्रेरी का उपयोग करते हैं। OpenCV इंस्टॉल करने के बाद आयात की जाने वाली लाइब्रेरी का नाम cv2 है। नीचे दिए गए उदाहरण में हम एक छवि फ़ाइल में मौजूद कंटूर ढूंढते हैं। कंटूर हमें छवि में मौजूद आकार की पहचान करने में मद