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

पायथन में नाइस सबएरे की संख्या गिनने का प्रोग्राम


मान लीजिए हमारे पास nums नामक एक ऐरे और एक मान k है। हमें नाइस सब-एरे की संख्या ढूंढनी है। एक सबएरे को नाइस सबएरे कहा जाता है यदि इसमें ठीक k विषम संख्याएं हों।

उदाहरण के लिए, यदि इनपुट nums = [1,1,2,1,1], k = 3 है, तो आउटपुट 2 होगा क्योंकि दो सबएरे [1,1,2,1] और [1,2,1,1] हैं।

हल करने के चरण

  1. odd_i := एक नई सूची।
  2. i को 0 से nums के आकार - 1 तक लूप चलाएं:
    • यदि nums[i] % 2 == 1, तो i को odd_i के अंत में जोड़ें।
  3. start := 0, end := k - 1
  4. i := 0
  5. count := 0
  6. end < odd_i के आकार तक व्हाइल लूप चलाएं:
    • यदि end == odd_i का आकार - 1, तो j := nums का आकार - 1
    • अन्यथा, j := odd_i[end + 1] - 1
    • count := count + (odd_i[start] - i + 1) * (j - odd_i[end] + 1)
    • i := odd_i[start] + 1
    • start := start + 1
    • end := end + 1
  7. count वापस करें।

उदाहरण

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

def solve(nums, k):
    odd_i = []
    for i in range(len(nums)):
        if nums[i] % 2 == 1:
            odd_i.append(i)
    start = 0
    end = k - 1
    i = 0
    count = 0
    while end < len(odd_i):
        if end == len(odd_i) - 1:
            j = len(nums) - 1
        else:
            j = odd_i[end + 1] - 1
        count = count + (odd_i[start] - i + 1) * (j - odd_i[end] + 1)
        i = odd_i[start] + 1
        start = start + 1
        end = end + 1
    return count

nums = [1,1,2,1,1]
k = 3
print(solve(nums, k))

इनपुट

[1,1,2,1,1], 3

आउटपुट

2
  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. पायथन में प्रत्येक ब्रैकेट गहराई में वर्णों की संख्या गिनने का प्रोग्राम पायथन में प्रत्येक ब्रैकेट गहराई में वर्णों की संख्या गिनने का प्रोग्राम

    मान लीजिए हमारे पास एक स्ट्रिंग s है जिसमें केवल तीन वर्ण X, ( , और ) हैं। स्ट्रिंग में संतुलित ब्रैकेट हैं और बीच में कुछ X हैं साथ ही संभवतः नेस्टेड ब्रैकेट भी पुनरावर्ती रूप से हो सकते हैं। हमें s में ब्रैकेट की प्रत्येक गहराई पर X की संख्या ढूंढनी है, सबसे उथली गहराई से सबसे गहरी गहराई तक शुरू क

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

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