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

Python से लेटेस्ट स्टेप पर साइज़ M का ग्रुप कैसे ढूंढें (बाइनरी स्ट्रिंग में)?

परम्यूटेशन ऐरे के अनुसार बिट्स सेट करते हुए, साइज़ M के 1s के कंटीज्युअस ग्रुप का लेटेस्ट स्टेप ढूंढें।

एल्गोरिदम

  • l और r ऐरे: प्रत्येक पोजीशन के लिए बाएं/दाएं कंटीज्युअस 1s की लंबाई।
  • प्रत्येक स्टेप पर करंट बिट सेट करें, पड़ोसियों से लंबाई मर्ज करें।
  • num = साइज़ M के ग्रुप्स की संख्या ट्रैक करें।
  • अगर num > 0 तो ans = max(ans, step) अपडेट करें।
  • बाउंडरी अपडेट: l[left_boundary] और r[right_boundary]।

उदाहरण कोड


def solve(arr, m):
    n = len(arr)
    num = 0
    ans = -1
    l = [0] * n
    r = [0] * n
    for i in range(n):
        cur = 1
        idx = arr[i] - 1
        if r[idx] == m: num -= 1
        if l[idx] == m: num -= 1
        cur += l[idx] + r[idx]
        num += cur == m
        if num > 0:
            ans = max(ans, i + 1)
        if idx - l[idx] > 0:
            r[idx - l[idx] - 1] = cur
        if idx + r[idx] < n - 1:
            l[idx + r[idx] + 1] = cur
    return ans

# टेस्ट: arr=[3,5,1,2,4], m=3 -> आउटपुट: 4

इनपुट/आउटपुट

इनपुट: arr=[3,5,1,2,4], m=3
आउटपुट: 4 (स्टेप 4 पर "11101" में "111" ग्रुप है)

  1. - पायथन में reduce फंक्शन का उपयोग करके परिमेय संख्याओं का गुणनफल खोजने का प्रोग्राम

    मान लीजिए हमारे पास परिमेय संख्याओं की एक सूची है। हमें reduce फंक्शन का उपयोग करके उनका गुणनफल ज्ञात करना है। reduce() फंक्शन दो आर्गुमेंट वाले फंक्शन को ऑब्जेक्ट्स की सूची पर बाएं से दाएं संचयी रूप से लागू करता है।उदाहरण के लिए, यदि इनपुट fractions = [(5,3),(2,8),(6,9),(5,12),(7,2)] है, तो आउटपुट

  1. पायथन में बहुभुज का क्षेत्रफल खोजने का प्रोग्राम पायथन में बहुभुज का क्षेत्रफल खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक 2D तल पर एक साधारण बहुभुज के अंतिम बिंदुओं को दर्शाने वाले क्रमबद्ध बिंदुओं की सूची है। हमें इस बहुभुज का क्षेत्रफल ढूंढना है।उदाहरण के लिए, यदि इनपुट points = [(0, 0), (0,5), (3, 5), (3,0)] है, तो आउटपुट 15 होगा।समाधान दृष्टिकोणइसे हल करने के लिए हम निम्न चरणों का पालन करेंगे

  1. पायथन में बहुभुज का परिमाप खोजने का प्रोग्राम पायथन में बहुभुज का परिमाप खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक 2D तल पर एक साधारण बहुभुज के अंतिम बिंदुओं को दर्शाने वाले क्रमबद्ध बिंदुओं की सूची है। हमें इस बहुभुज का परिमाप ढूंढना है।उदाहरण के लिए, यदि इनपुट points = [(0, 0), (0,5), (3, 5), (3,0)] है, तो आउटपुट 16 होगा क्योंकिदो भुजाएं लंबाई 3 की हैं और दो भुजाएं लंबाई 5 की हैं, तो 2*5