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

n अंकों की स्टेपिंग संख्याओं की संख्या गिनने का पायथन प्रोग्राम


मान लीजिए हमारे पास एक संख्या n है, हमें n अंकों की स्टेपिंग संख्याओं की संख्या ढूंढनी है। जैसा कि हम जानते हैं एक संख्या को स्टेपिंग संख्या कहा जाता है जब सभी आसन्न अंकों का निरपेक्ष अंतर 1 होता है। तो यदि संख्या 123 है, तो यह स्टेपिंग संख्या है लेकिन 124 नहीं। यदि उत्तर बहुत बड़ा है तो परिणाम को 10^9 + 7 से मॉड्यूलो करके लौटाएं।

उदाहरण के लिए, यदि इनपुट n = 2 है, तो आउटपुट 17 होगा, क्योंकि स्टेपिंग संख्याएं हैं [12, 23, 34, 45, 56, 67, 78, 89, 98, 87, 76, 65, 54, 43, 32, 21, 10]

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

  • m := 10^9 + 7
  • यदि n, 0 के समान है, तो
    • 0 लौटाएं
  • यदि n, 1 के समान है, तो
    • 10 लौटाएं
  • dp := आकार 10 की सूची जिसे मान 1 से भरा गया है
  • n - 1 बार पुनरावृति करें, करें
    • ndp := आकार 10 की सूची जिसे मान 0 से भरा गया है
    • ndp[0] := dp[1]
    • i को 1 से 8 तक के लिए, करें
      • ndp[i] := dp[i - 1] + dp[i + 1]
    • ndp[9] := dp[8]
    • dp := ndp
  • (dp[1 से अंत तक] के सभी संख्याओं का योग) mod m लौटाएं

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

उदाहरण

class Solution:
    def solve(self, n):
        m = (10 ** 9 + 7)
        if n == 0:
            return 0
        if n == 1:
            return 10
        dp = [1] * 10
        for _ in range(n - 1):
            ndp = [0] * 10
            ndp[0] = dp[1]
            for i in range(1, 9):
                ndp[i] = dp[i - 1] + dp[i + 1]
            ndp[9] = dp[8]
            dp = ndp
        return sum(dp[1:]) % m

ob = Solution()
n = 3
print(ob.solve(n))

इनपुट

3

आउटपुट

32

  1. - पायथन में संभावित विनम्र मैट्रिक्स की संख्या गिनने का प्रोग्राम

    मान लीजिए हमारे पास दो मान n और m हैं। हमें क्रम n x m के विनम्र मैट्रिक्स की संभावित व्यवस्थाओं की संख्या खोजनी है। एक मैट्रिक्स को विनम्र कहा जाता है जब:इसमें 1 से n x m तक का प्रत्येक तत्व ठीक एक बार होता हैकिसी भी दो इंडेक्स जोड़े (i1, j1) और (i2, j2) के लिए, यदि (i1 + j1) < (i2 + j2), तो Mat

  1. - Python प्रोग्राम - स्ट्रिंग में विशिष्ट सबस्ट्रिंग की संख्या गिनें

    एक स्ट्रिंग s दी गई है, हमें s के विशिष्ट गैर-खाली सबस्ट्रिंग की संख्या खोजनी है। उदाहरण इनपुट: s = abaa आउटपुट: 8 व्याख्या: सबस्ट्रिंग हैं [a, b, ab, ba, aa, aba, baa, abaa]। एल्गोरिदम (ट्राई/प्रीफिक्स ट्री) trie := {} (खाली डिक्शनरी) n := len(s) i 0 से n-1 तक: curr := trie j i से n-1

  1. पायथन में ऐरे में x से बड़े सभी वैल्यूज को फ़िल्टर करने का प्रोग्राम पायथन में ऐरे में x से बड़े सभी वैल्यूज को फ़िल्टर करने का प्रोग्राम

    मान लीजिए हमारे पास nums नामक संख्याओं की सूची है। हमारे पास x नामक एक और संख्या भी है। हमें nums से उन सभी नंबरों को फ़िल्टर करके ढूंढना है जो x से कम हैं। पायथन में filter() मेथड होता है जो फंक्शन को आर्गुमेंट के रूप में लेता है और इस फंक्शन का उपयोग करके फ़िल्टर करता है। तो, यदि इनपुट nums = [1,5