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

नियमित अभिव्यक्ति पैटर्न की जांच करने के लिए कार्यक्रम पायथन में स्ट्रिंग के साथ मेल खा रहा है या नहीं

मान लीजिए कि हमारे पास एक स्ट्रिंग s और एक रेगुलर एक्सप्रेशन पैटर्न है। हमें यह जांचना है कि दिया गया पैटर्न दिए गए स्ट्रिंग से मेल खाता है या नहीं। रेगुलर एक्सप्रेशन में, कुछ नियम हैं -

  • . (अवधि) जो किसी एक वर्ण से मेल खाता हो

  • * (तारांकन) जो पिछले तत्व के शून्य या अधिक से मेल खाता है।

इसलिए, यदि इनपुट पैटर्न ="h.l*o" s ="hello" जैसा है, तो आउटपुट सही होगा, क्योंकि हमारे पास ra और फिर एक वर्ण है

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

  • n :=s का आकार

  • मी :=p का आकार

  • एक फ़ंक्शन को परिभाषित करें dp() । यह ले जाएगा मैं, जे

  • यदि j, m के समान है, तो

    • वापसी मैं n के समान है

  • मैच :=सच जब (i

  • अगर j + 1 &m और p[j + 1] "*" के समान है, तो

    • dp(i, j + 2) या (मिलान और dp(i + 1, j)) अन्यथा असत्य होने पर सही लौटें

  • वापसी मैच और dp(i + 1, j + 1)

  • मुख्य विधि से वापसी dp(0, 0)

उदाहरण

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

class Solution:
   def solve(self, p, s):
      n = len(s)
      m = len(p)
      def dp(i, j):
         if j == m:
            return i == n
         match = i < n and (s[i] == p[j] or p[j] == ".")
         if j + 1 < m and p[j + 1] == "*":
            return dp(i, j + 2) or (match and dp(i + 1, j))
         return match and dp(i + 1, j + 1)
      return dp(0, 0)
ob = Solution()
pattern = "h.l*o"
s = "hello"
print(ob.solve(pattern, s))

इनपुट

"h.l*o", "hello"

आउटपुट

True

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

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

  1. स्ट्रिंग खाली है या नहीं यह जांचने के लिए पायथन प्रोग्राम

    इस लेख में, हम दिए गए समस्या कथन को हल करने के लिए समाधान और दृष्टिकोण के बारे में जानेंगे। समस्या कथन एक स्ट्रिंग इनपुट को देखते हुए, हमें यह जांचना होगा कि स्ट्रिंग खाली है या नहीं। पायथन स्ट्रिंग्स प्रकृति में अपरिवर्तनीय हैं इसलिए किसी भी ऑपरेशन को करते समय स्ट्रिंग्स को संभालते समय सावधानी बर

  1. एक स्ट्रिंग अल्फ़ान्यूमेरिक है या नहीं, यह जांचने के लिए पायथन रेगुलर एक्सप्रेशन क्या है?

    यह जांचने के लिए कि क्या स्ट्रिंग में मॉड्यूल रेगुलर एक्सप्रेशन या रेगेक्स का उपयोग करके केवल अल्फ़ान्यूमेरिक्स हैं, हम रेगेक्स का उपयोग करके re.match(regex, string) को कॉल कर सकते हैं:^[a-zA-Z0-9]+$। उदाहरण के लिए, >>> bool(re.match('^[a-zA-Z0-9]+$', '789def')) True >&