题解 | #括号匹配深度#

括号匹配深度

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,则说明当前的深度还没达到前面有记录的最大深度,不用理会

全部评论

相关推荐

安徽省移动公司 IT部门 一年税前14w
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务