Python + Generator / LeetCode "1614. max nesting depth of the parentheses"

Posted on Nov 11, 2020

지난 번 작성한 Common Lisp / LOOP매크로을 이용한 구현 을 다른 언어에서였다면, 비슷한 조건으로 메모리 복잡도 O(1)으로 풀어보고 싶었다.

from itertools import accumulate


def find_paren_count(s):
    gen_only_parens = (ch == '(' and 1 or -1
                       for ch in s
                       if ch in ('(', ')',))
    return max(accumulate(gen_only_parens))

다른 언어에서도 lazy stream을 지원한다면 비슷하게 풀 수 있을 것 같다.