CF 26b
题意
给定一个括号序列 询问合法的括号组的个数
分析
用一个栈,当栈顶为 ‘(’ 且输入一个 ‘)’ 时,合法数 + 1
代码
#include <bits/stdc++.h>
using namespace std;
stack <int> st;
int main()
{
string s;
cin>>s;
s = ' ' + s + ' ';
st.push(0);
int cnt = 0;
for(int i = 1 ; i < s.length() ; i++)
{
if(s[st.top()] != '(' || s[i] == '(' || i == s.length() - 1)
{
st.push(i);
}
else
{
st.pop();
cnt++;
}
}
printf("%d" , cnt << 1);
return 0;
}