题解 | #括号匹配深度#
括号匹配深度
https://www.nowcoder.com/practice/a2d5b1875bb0408384278f40d1f236c9
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,则说明当前的深度还没达到前面有记录的最大深度,不用理会
