题解 | 括号配对问题
括号配对问题
https://www.nowcoder.com/practice/57260c08eaa44feababd05b328b897d7
#include<bits/stdc++.h>
using namespace std;
bool solve(string& s) {
stack<char>sk;
/*string s;
getline(cin, s);*/
int len = s.size();
for (int i = 0; i < len; i++) {
if (s[i] == '(' || s[i] == '[') {
sk.push(s[i]);
} else if (s[i] == ')') {
if (sk.empty() || sk.top() != '(') {
return false;
}
sk.pop();
} else if (s[i] == ']') {
if (sk.empty() || sk.top() != '[') return false;
sk.pop();
} else {
continue;
}
}
return sk.empty();
//return true;
}
int main() {
string s;
getline(cin, s);
if (solve(s))cout << "true";
else {
cout << "false";
}
return 0;
}