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

पायथन में व्याकरण नियमों का उपयोग करके बनाई जा सकने वाली स्ट्रिंग्स की संख्या गिनने का प्रोग्राम


मान लीजिए हमारे पास एक संख्या n है, हमें लंबाई n की उन स्ट्रिंग्स की संख्या ढूंढनी है जो निम्न नियमों का उपयोग करके उत्पन्न की जा सकती हैं:

  • प्रत्येक वर्ण लोअरकेस वॉवेल [a, e, i, o, u] है।
  • "a" के बाद केवल एक "e" आ सकता है।
  • "e" के बाद केवल "a" और "i" आ सकते हैं।
  • "i" के बाद दूसरा "i" नहीं आ सकता।
  • "o" के बाद केवल "i" और "u" आ सकते हैं।
  • "u" के बाद केवल एक "a" आ सकता है।

यदि परिणाम बहुत बड़ा है, तो इसे 10^9 + 7 से मोड करें।

उदाहरण के लिए, यदि इनपुट n = 2 है, तो आउटपुट 10 होगा, क्योंकि हम निम्न दो-अक्षर स्ट्रिंग्स उत्पन्न कर सकते हैं: ["ae", "ea", "ei", "ia", "ie", "io", "iu", "oi", "ou", "ua"]।

इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे (डायनामिक प्रोग्रामिंग):

  • m = 10^9 + 7।

  • यदि n == 0, तो 0 लौटाएं।

  • पांच वेरिएबल a, e, i, o, u को 1 से आरंभ करें।

  • n-1 बार लूप चलाएं:

    • a, e, i, o, u = e+i+u, a+i, e+o, i, i+o (मोड m के साथ)।

  • (a + e + i + o + u) % m लौटाएं।

उदाहरण

class Solution:    def solve(self, n):       m = (10 ** 9 + 7)       if n == 0:          return 0       a = e = i = o = u = 1       for _ in range(n-1):          a, e, i, o, u = e+i+u, a+i, e+o, i, i+o       return (a + e + i + o + u) % m ob = Solution() print(ob.solve(3))

इनपुट

3

आउटपुट

19

  1. आकार d के डोडेकागन बनाने के तरीकों की संख्या गिनने के लिए C++ प्रोग्राम आकार d के डोडेकागन बनाने के तरीकों की संख्या गिनने के लिए C++ प्रोग्राम

    मान लीजिए हमारे पास एक संख्या d है। मान लें कि भुजा लंबाई 1 के अनंत वर्गाकार टाइल्स और नियमित त्रिकोणीय टाइल्स हैं। हमें उन तरीकों की संख्या ढूंढनी है जिनसे हम इन टाइल्स का उपयोग करके भुजा d के साथ नियमित डोडेकागन (12-भुज बहुभुज) बना सकते हैं। यदि उत्तर बहुत बड़ा है, तो परिणाम को 998244353 मॉड्यूलो

  1. पायथन प्रोग्राम: लगातार 1 के बिना बाइनरी स्ट्रिंग्स की संख्या गिनें पायथन प्रोग्राम: लगातार 1 के बिना बाइनरी स्ट्रिंग्स की संख्या गिनें

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक धनात्मक पूर्णांक N दिया गया है, हमें लंबाई N की सभी संभावित अलग बाइनरी स्ट्रिंग्स गिननी हैं जिनमें लगातार 1 न हों। उदाहरण # स्ट्रिंग्स की संख्या गिनें def countStrings(n): a = [0 for i in range(n)] b = [0 for i in r

  1. - पायथन प्रोग्राम: सेट का उपयोग करके दिए गए स्ट्रिंग में वॉवेल्स की संख्या गिनना

    इस प्रोग्राम में, एक यूजर इनपुट स्ट्रिंग दी गई है। हमें इस स्ट्रिंग में वॉवेल्स की संख्या गिननी है। यहां हम पायथन में सेट का उपयोग करते हैं। सेट एक अनऑर्डर्ड कलेक्शन डेटा टाइप है जो इटरेबल, म्यूटेबल है और इसमें कोई डुप्लिकेट एलिमेंट्स नहीं होते।उदाहरणInput str1=pythonprogram Output 3एल्गोरिदमचरण 1: