package main

import (
    "fmt"
)

func main() {
    var s string
    for {
        n, _ := fmt.Scan(&s)
        if n == 0 {
            break
        } else {
            fmt.Printf("%d\n",Depth(s))
        }
    }
}
func Depth(s string)int {
    // 记录最大深度
    max := 0
    // 记录多余的'("
    cur := 0
    for _,val := range s {
        if val == '('{
            if cur == max {
                max ++
            }
            cur++
        }else {
            cur --
        }
    }
    return max
}

左括号的连续个数即是一组括号字符串的深度

用cur记录一组连续的'(',如果max=cur,则接下来的左括号+1的时候,最大深度max也会+1

如果cur<max,则说明当前的深度还没达到前面有记录的最大深度,不用理会