Rozwiązanie zadania z pomocą sum prefiksowych

Rozwiązanie zadania z pomocą sum prefiksowych
S7
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 363
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?

lion137
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5027
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).

Kopiuj
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
Wibowit
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: XML Hills
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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.