C++ Bracket
#include <string>
#include <vector>
int bracket(const std::string& s)
{
std::vector<char> stack;
for (char c : s) {
switch (c) {
case ')':
if (stack.empty() || stack.back() != '(') {
return 0;
}
stack.pop_back();
break;
case ']':
if (stack.empty() || stack.back() != '[') {
return 0;
}
stack.pop_back();
break;
case '}':
if (stack.empty() || stack.back() != '{') {
return 0;
}
stack.pop_back();
break;
default:
stack.push_back(c);
break;
}
}
return stack.empty() ? 1 : 0;
}
This uses a simple stack approach: open brackets go in, matching closing brackets pop them out.