题解 | #括号匹配深度#
括号匹配深度
https://www.nowcoder.com/practice/cf1572d8558c4d349fb86c4a529c3cc4
代码如下: #include<bits/stdc++.h> using namespace std; int getDepth(string s){ int leftNum=0;//做左括号数目 int rightNum=0; //右括号数目 int depth=0; //记录当前深度 int maxDepth=0;//记录最大深度 for(int i=0;i<s.size();i++){ if(s[i]=='('){ //当前符号是左括号,遇到左括号就深度加1 leftNum++; depth++; if(depth>maxDepth){ maxDepth=depth;//记录下当前最大左括号深度 } }else{//当前括号是右括号 depth--; if(leftNum==0){ rightNum++; }else{ leftNum--; } } } if(leftNum+rightNum!=0){ return -1; } return maxDepth; } int main(){ string brackets; cin>>brackets; int dep=getDepth(brackets); if(dep==-1){ cout<<"括号序列不合法"<<endl; }else{ cout<<dep; } return 0; }