Rozwiązanie zadania z pomocą sum prefiksowych

0

Zacząłem robić ten kurs, pierwsze zadanie do tematu "Sumy prefiksowe" to Zadanie Program OIG
No i rozwiązałem je ale z użyciem stosu, nie potrafię znaleźć tutaj optymalnego rozwiązania z pomocą sum prefiskowych, czy to jakiś błąd czy ja czegoś nie dostrzegam?

1

Za pomocą stosu sprawdzasz czy ciąg jest poprawnie znawiasowany, a zagnieżdżenie za pomocą coś ala sumy prefiksowe, (zamieniłem wszystkie nawiasy na okrągłe - chyba nic się ni e stało).

def bal_par_orefix(s):
    sum_p = 0
    maximum = 0
    for e in s:
        if e == "(":
            sum_p += 1
            if sum_p >= maximum:
                maximum = sum_p
        else: sum_p -= 1

    return maximum

print(bal_par_orefix("()(((()()()))()(()))"))  # -> 4
0

Wpychanie tej niby sumy prefiksowej jest absurdalne w sytuacji, gdy sprawdzenie głębokości stosu jest trywialne. Jakoś mi to nie pasuje. W tym artykule "Struktury danych - sumy prefiksowe" te sumy prefiksowe są spamiętywane po to, by potem obniżyć złożoność algorytmu. Tutaj nie ma ani spamiętywania, ani obniżania złożoności algorytmu. Po co więc wstawiać to na siłę? Ja bym się zapytał autora, co miał na myśli jak przygotowywał to zadanie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1