import java.util.*;
public class Main {
public static void main(String[] args){
Scanner in=new Scanner (System.in);
String x=in.next();
boolean vis[]=new boolean[x.length()];
int mar[]=new int[x.length()+1],cnt=0;
Stack<Node>st=new Stack<>();
for(int i=0;i<x.length();i++) {
if(x.charAt(i)=='(')st.push(new Node('(',i));
else if(x.charAt(i)==')'&&!st.isEmpty()) {
Node x1=st.pop();
vis[x1.in]=true;
vis[i]=true;
}
}
for(int i=0;i<vis.length ;i++) {
if(vis[i]==true)cnt++;
else {
mar[cnt]++;
cnt=0;
栈的使用例题
最新推荐文章于 2024-09-05 11:36:54 发布
本文介绍了一道关于栈的应用题目——求最长合法括号子串。通过遍历字符串,利用栈的先进后出特性,遇到左括号入栈,遇到右括号时出栈并更新最长合法子串长度。栈中的节点记录对应括号的索引,以便判断括号匹配情况。

最低0.47元/天 解锁文章
1016

被折叠的 条评论
为什么被折叠?



