题目描述
blablabla
样例
//acwing 3693. 括号匹配
//用这个题来熟悉栈的相关操作
#include<iostream>
#include<string>
using namespace std;
const int N = 100000 + 10;
string str;
char st[N];
int top = 0;
int main()
{
//<,(,{,[ ,>,),},]
cin >> str;
for (int i = 0; i < str.size(); i++) {
if (top==0) {
st[top++] = str[i];
}
else {
if (str[i]=='>' &&st[top-1] == '<') {
top--;
}
else if (str[i] == '}'&&st[top-1] == '{' ) {
top--;
}
else if (str[i] == ')'&&st[top-1] == '(' ) {
top--;
}
else if (str[i] == ']'&&st[top-1] == '[' ) {
top--;
}
else {
st[top++] = str[i];
}
}
}
if (top == 0) {
cout << "yes" << endl;
}
else {
cout << "no" << endl;
}
return 0;
}
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla