Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,939 questions

51,876 answers

573 users

How to check if a string contains only valid parentheses (open close same type (), {}, []) in C++

1 Answer

0 votes
#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

*/

 



answered Mar 9, 2024 by avibootz
...