题解 | #括号匹配深度#

括号匹配深度

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

全部评论

相关推荐

Tom哥981:这份简历是“大一新生硬凹资深后端”的典型反面教材,槽点离谱到能让面试官直接笑出声: ### 1. 「年龄+入学时间」和项目复杂度完全脱节,可信度直接归0 你2024年7月才入学(现在刚读了1年多),19岁的大一新生,能把Vue3+Spring Boot+ShardingSphere+K8s+AI这些技术全塞进两个项目里?别说实际开发,光把这些技术的文档看完都得半年——这不是“能力强”,是“把招聘JD里的技术词全抄过来造假”,明摆着没碰过实际代码
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务