#include <iostream>
#include <stack>
class Program {
public:
bool string_contains_valid_parentheses(std::string s) {
std::stack<char> stack;
for (const char ch : s) {
if (ch == '(') {
stack.push(')');
}
else if (ch == '{') {
stack.push('}');
}
else if (ch == '[') {
stack.push(']');
}
// Example: if first '(' == second '(' = valid -> next check
else if (stack.empty() || pop(stack) != ch) {
return false;
}
}
return stack.empty();
}
private:
int pop(std::stack<char>& stack) {
const int ch = stack.top();
stack.pop();
return ch;
}
};
int main() {
Program p;
std::cout << p.string_contains_valid_parentheses("(){}[]()(){}");
}
/*
run:
1
*/