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

पायथन में अलग-अलग अनुक्रमों की संख्या खोजने का कार्यक्रम

मान लीजिए कि हमारे पास एक स्ट्रिंग s है, हमें स्ट्रिंग s के अलग-अलग अनुक्रमों की संख्या गिननी है। अगर उत्तर बहुत बड़ा है तो परिणाम मॉड्यूलो 10^9 + 7 लौटाएं।

इसलिए, यदि इनपुट s ="bab" जैसा है, तो आउटपुट 6 होगा क्योंकि 6 अलग-अलग क्रम हैं, ये "a", "b, "ba", "ab", "bb", "abb" हैं। ।

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

  • dp:=एक सरणी जिसका आकार s के समान है और 0 से भरा है

  • मी :=10^9 + 7

  • प्रत्येक अनुक्रमणिका i और s में आइटम चार के लिए, करें

    • ind :=दायीं ओर से s में i-th char की अनुक्रमणिका

    • डीपी [i]:=1 + (डीपी में सभी तत्वों का योग [इंडेक्स 0 से i-1 तक]) मॉड एम अगर इंड -1 के समान है अन्यथा (डीपी में सभी तत्वों का योग [इंडेक्स इंड से i-1 तक) ]) मॉड एम

  • dp mod m में सभी तत्वों का रिटर्न योग

उदाहरण

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

def solve(s):
   dp, m = [0] * len(s), 10**9 + 7
   for i, char in enumerate(s):
      ind = s.rfind(char, 0, i)
      dp[i] = 1 + sum(dp[:i]) % m if ind == -1 else sum(dp[ind:i]) % m
   return sum(dp) % m

s = "bab"
print(solve(s))

इनपुट

"abcd", "abcdbcd"

आउटपुट

6

  1. पायथन में एनटी फाइबोनैचि संख्या खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक संख्या n है, हमें nवां फाइबोनैचि पद ज्ञात करना है। जैसा कि हम जानते हैं कि फिबोनाची शब्द f(i) =f(i-1) + f(i-2), पहले दो पद 0, 1. हैं। तो, अगर इनपुट 15 की तरह है, तो आउटपुट 610 होगा इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - पहला:=0, दूसरा:=1 2 से n की श्रेणी में i

  1. पायथन में एक श्रेणी में नोड्स की संख्या खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक बीएसटी है, और हमारे पास बाएं और दाएं सीमाएं एल और आर भी हैं, हमें रूट में उन सभी नोड्स की गिनती ढूंढनी है जिनके मान एल और आर (समावेशी) के बीच मौजूद हैं। तो, अगर इनपुट पसंद है l =7, r =13, तो आउटपुट 3 होगा, क्योंकि तीन नोड हैं:8, 10, 12. इसे हल करने के लिए, हम इन चरणों

  1. एक सूची में सबसे बड़ी संख्या खोजने के लिए पायथन कार्यक्रम

    इस लेख में, हम दिए गए समस्या कथन को हल करने के लिए समाधान और दृष्टिकोण के बारे में जानेंगे। समस्या कथन दी गई सूची इनपुट, हमें दी गई सूची में सबसे बड़ी संख्या खोजने की जरूरत है। यहां हम दो दृष्टिकोणों पर चर्चा करेंगे सॉर्टिंग तकनीकों का उपयोग करना अंतर्निहित अधिकतम() फ़ंक्शन का उपयोग करना दृष्टिक