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

पायथन में बोल्ड टैग में पैटर्न संलग्न करने का कार्यक्रम?

मान लीजिए कि हमारे पास एक टेक्स्ट और स्ट्रिंग्स की एक सूची है जिसे पैटर्न कहा जाता है, हमें एक एम्बोल्डन फ़ंक्शन को परिभाषित करना होगा जहां टेक्स्ट में सभी सबस्ट्रिंग जो दिए गए पैटर्न में किसी भी स्ट्रिंग से मेल खाते हैं, उन्हें और में लपेटा जाता है। टैग। यदि कोई दो प्रतिमान आसन्न या ओवरलैप हैं, तो उन्हें एक टैग में मिला दिया जाना चाहिए।

इसलिए, यदि इनपुट टेक्स्ट ="थिसिसम्प्लीलाइन" पैटर्न =["यह", "इस्सम", "नमूना"] जैसा है, तो आउटपुट "एbcdef होगा। b>g", क्योंकि bc और ef टेक्स्ट से मेल खाते हैं और और टैग में लिपटे हुए हैं।

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

  • n :=टेक्स्ट का आकार

  • बोल्ड :=आकार n की एक सूची, और गलत मानों से भरें

  • मेरे लिए 0 से n की सीमा में, करें

    • पैटर्न में प्रत्येक p के लिए, करें

      • अगर टेक्स्ट का सबस्ट्रिंग [इंडेक्स i से अंत तक] p से शुरू होता है, तो

        • j के लिए 0 से p के आकार की सीमा में, करें

          • बोल्ड [i + j] :=सच

  • उत्तर:=रिक्त स्ट्रिंग

  • मेरे लिए 0 से n की सीमा में, करें

    • अगर बोल्ड [i] और (i 0 के समान है या बोल्ड [i - 1] गलत है), तो

      • उत्तर :=उत्तर समवर्ती ""

    • उत्तर:=उत्तर + पाठ [i]

    • अगर बोल्ड [i] और (i n -1 के समान है या बोल्ड [i + 1] गलत है), तो

      • ans :=ans concatenate ""

  • वापसी उत्तर

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

उदाहरण

class Solution:
   def solve(self, text, patterns):
      n = len(text)
      bold = [False] * n
      for i in range(n):
         for p in patterns:
            if text[i:].startswith(p):
               for j in range(len(p)):
                  bold[i + j] = True

      ans = ""
      for i in range(n):
         if bold[i] and (i == 0 or not bold[i - 1]):
            ans += ""
          ans += text[i]
         if bold[i] and (i == n - 1 or not bold[i + 1]):
             ans += ""
      return ans

ob = Solution()
text = "thisissampleline"
patterns = ["this", "ssam", "sample"]
print(ob.solve(text, patterns))

इनपुट

"thisissampleline", ["this", "ssam", "sample"]

आउटपुट

<b>this</b>i<b>ssample</b>line

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

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक सूची दी गई है, हमें क्रमबद्ध क्रम को बदले बिना सूची में एक तत्व डालने की आवश्यकता है नीचे चर्चा के अनुसार दो दृष्टिकोण हैं- दृष्टिकोण 1:पाशविक बल विधि उदाहरण def insert(list_, n):    # search  

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

    यहाँ एक टपल दिया गया है, हमारा काम टुपल्स को डिक्शनरी में बदलना है। इस समस्या को हल करने के लिए हम डिक्शनरी विधि setdefault () का उपयोग करते हैं। इस विधि में दो पैरामीटर हैं, पहला पैरामीटर को कुंजी में बदलने के लिए और दूसरे को डिक्शनरी के मान में बदलने के लिए। सेटडिफॉल्ट (कुंजी, मान) एक फ़ंक्शन है ज

  1. numpy का उपयोग करके n*n के चेकबोर्ड पैटर्न को प्रिंट करने के लिए पायथन प्रोग्राम।

    n के मान को देखते हुए, हमारा कार्य n x n मैट्रिक्स के लिए चेक बोर्ड पैटर्न प्रदर्शित करना है। प्रारंभिक मान के साथ सरणियाँ बनाने के लिए विभिन्न प्रकार के कार्य numpy में उपलब्ध हैं। NumPy, Python में वैज्ञानिक कंप्यूटिंग के लिए मूलभूत पैकेज है। एल्गोरिदम Step 1: input order of the matrix. Step 2: