1. 程式人生 > >【演算法 in python】匹配括號

【演算法 in python】匹配括號

一個合法的括號匹配序列有以下定義:
1、空串""是一個合法的括號匹配序列
2、如果"X"和"Y"都是合法的括號匹配序列,"XY"也是一個合法的括號匹配序列
3、如果"X"是一個合法的括號匹配序列,那麼"(X)"也是一個合法的括號匹配序列
4、每個合法的括號序列都可以由以上規則生成。
例如: "","()","()()","((()))"都是合法的括號序列
對於一個合法的括號序列我們又有以下定義它的深度:
1、空串""的深度是0
2、如果字串"X"的深度是x,字串"Y"的深度是y,那麼字串"XY"的深度為max(x,y) 3、如果"X"的深度是x,那麼字串"(X)"的深度是x+1
例如: "()()()"的深度是1,"((()))"的深度是3。牛牛現在給你一個合法的括號序列,需要你計算出其深度。 

def depth(s):
    left = 0
    res = 0
    for i in range(len(s)):
        if s[i] == '(':
            left += 1
            res = max(left, res)
        else:
            left -= 1
    return res