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

पायथन में वर्ड ब्रेक


मान लीजिए हमारे पास एक गैर-खाली स्ट्रिंग s और एक डिक्शनरी wordDict है। जिसमें गैर-खाली शब्दों की एक सूची है, यह निर्धारित करें कि s को एक या अधिक डिक्शनरी शब्दों के स्पेस-सेपरेटेड अनुक्रम में विभाजित किया जा सकता है या नहीं। हमें कुछ नियमों का पालन करना होगा -

  • डिक्शनरी में वही शब्द विभाजन में कई बार पुनः उपयोग किया जा सकता है।
  • हम मान सकते हैं कि डिक्शनरी में डुप्लिकेट शब्द नहीं हैं।

मान लीजिए स्ट्रिंग s = "applepenapple", और वर्ड डिक्शनरी ["apple", "pen"] जैसी है, तो आउटपुट true होगा क्योंकि स्ट्रिंग s को "apple pen apple" के रूप में विभाजित किया जा सकता है।

चरण देखें -

  • n x n क्रम का एक मैट्रिक्स DP परिभाषित करें। n = स्ट्रिंग का आकार, और इसे false से इनिशियलाइज़ करें
  • i के लिए 1 से s की लंबाई तक की रेंज में
    • j के लिए 0 से s की लंबाई - i तक की रेंज में
      • यदि सबस्ट्रिंग s[j से j + 1] डिक्शनरी में है, तो dp[j, j+i - 1] := True
      • अन्यथा
        • k के लिए j + 1 से j + i तक
          • यदि dp[j, k - 1] और dp[k, j + i - 1], तो dp[j, j + i - 1] := True
  • DP[0, s की लंबाई - 1] लौटाएं

उदाहरण (पायथन)

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

class Solution(object):    def wordBreak(self, s, wordDict):       dp = [[False for i in range(len(s))] for x in range(len(s))]       for i in range(1,len(s)+1):          for j in range(len(s)-i+1):             #print(s[j:j+i])             if s[j:j+i] in wordDict:                dp[j][j+i-1] = True             else:                for k in range(j+1,j+i):                   if dp[j][k-1] and dp[k][j+i-1]:                      dp[j][j+i-1]= True       return dp[0][len(s) - 1] ob1 = Solution() print(ob1.wordBreak("applepenapple", ["apple", "pen"]))

इनपुट

"applepenapple" ["apple", "pen"]

आउटपुट

true

  1. - पायथन में मैट्रिक्स आरंभ करना

    इस लेख में, हम सीखेंगे कि पायथन 3.x (या पूर्व संस्करणों) में दो-आयामी सूची का उपयोग करके मैट्रिक्स को कैसे आरंभ किया जा सकता है। आइए मैट्रिक्स को आरंभ करने के सहज तरीके को देखें जो केवल पायथन भाषा प्रदान करती है। यहाँ हम सूची समझ का लाभ उठाते हैं। हम आंतरिक सूची को आरंभ करते हैं और फिर सूची समझ का

  1. पायथन का उपयोग करके वर्ड क्लाउड बनाना पायथन का उपयोग करके वर्ड क्लाउड बनाना

    इस समस्या में, एक फाइल है जिसमें कुछ टेक्स्ट है। हमें उन टेक्स्ट से वर्ड क्लाउड बनाना है और एक मास्किंग इमेज। प्रोग्राम वर्ड क्लाउड इमेज को png फॉर्मेट में स्टोर करेगा।इस समस्या को लागू करने के लिए, हमें पायथन की कुछ लाइब्रेरीज़ का उपयोग करने की आवश्यकता है। लाइब्रेरीज़ हैं: matplotlib, wordcloud, n

  1. - Python में for लूप को कैसे तोड़ें (break)?

    Python में for लूप में break स्टेटमेंट सामान्यतः for लूप को रेंज में प्रत्येक आइटम के लिए एक ब्लॉक पर पुनरावृति करने के लिए बनाया जाता है। यदि सभी पुनरावृत्तियों के पूरा होने से पहले लूप की समय से पहले समाप्ति वांछित है, तो break कीवर्ड का उपयोग किया जाता है। यह हमेशा लूप के शरीर के अंदर एक कंडीशनल