首页 > 试题广场 >

括号匹配深度

[编程题]括号匹配深度
  • 热度指数:6298 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
一个合法的括号匹配序列有以下定义:
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。牛牛现在给你一个合法的括号序列,需要你计算出其深度。

输入描述:
输入包括一个合法的括号序列s,s长度length(2 ≤ length ≤ 50),序列中只包含'('和')'。


输出描述:
输出一个正整数,即这个序列的深度。
示例1

输入

(())

输出

2
头像 只会写java的程序猿
发表于 2021-07-12 21:25:18
import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); String s=s 展开全文
头像 牛客题解官
发表于 2020-06-05 17:47:45
题解 题目难度:简单 知识点:字符串、数组、栈 分析: 因为题目本身是针对合法字符串求深度,省去了判断字符串是否合法的步骤,所以该题较简单,下面给出2种解法 方法1: 利用数组,统计到当前位置Xi时连续左括号的长度 import java.util.Arrays; import java.util. 展开全文
头像 N_zip
发表于 2025-07-30 10:23:55
#include <iostream> #include <string> #include <algorithm> using namespace std; int main() { string s; cin >> s; 展开全文
头像 牛客885318765号
发表于 2023-03-10 17:04:12
package main import ( "fmt" ) func main() { var s string for { n, _ := fmt.Scan(&s) if n == 0 { break 展开全文
头像 赫he
发表于 2024-04-12 14:01:42
#include <iostream> #include <algorithm> #include <stack> using namespace std; string str; stack<int> st; int manL = 0; // 栈 展开全文
头像 叶子201810260844134
发表于 2022-10-23 13:56:41
const rl = require("readline").createInterface({ input: process.stdin });var iter = rl[Symbol.asyncIterat 展开全文
头像 游夜
发表于 2023-03-08 15:53:18
//https://www.nowcoder.com/practice/a2d5b1875bb0408384278f40d1f236c9?tpId=90&tqId=30808&tPage=2&rp=2&ru=%2Fta%2F2018test&qru=%2Fta%2F2018test%2Fquesti 展开全文
头像 丨阿伟丨
发表于 2025-08-28 17:19:43
题目链接 括号匹配深度 题目描述 给定一个合法的括号匹配序列 ,你需要计算出它的深度。深度的定义如下: 空串 "" 的深度是 。 如果字符串 X 和 Y 都是合法的括号匹配序列,它们的深度分别为 和 ,那么字符串 XY 的深度为 。 如果 X 的深度是 ,那么字符串 (X) 展开全文
头像 alij
发表于 2025-12-11 15:32:02
区间dp,栈 我们开一个数组表示和第个位置配对的位置,即是一个配对的括号,同时把这些配对的二元组加进中,之后按照从小到大排序,即我们先处理长度为2的括号,接着长度为4,6等等。 我们同时开一个表示区间的深度,对于长度为2的区间,我们直接让,对于区间长度大于的区间,我们枚举中间的合法区间分界处,令,那 展开全文
头像 冷艳的西红柿刷牛客
发表于 2025-10-21 14:17:52
#include<iostream> #include<stack> #include<string> #include<algorithm> using namespace std; int main() { string s; cin &g 展开全文