20 - Valid Parenthesesf

#easy

Given a string s containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.

An input string is valid if:

  1. Open brackets must be closed by the same type of brackets.
  2. Open brackets must be closed in the correct order.
  3. Every close bracket has a corresponding open bracket of the same type.

Example 1:
Input: s = "()"
Output: true

class Solution {
public:
    bool isValid(string s) {
        if ( s.size() % 2 == 1 ) return false;
        stack<char> bracket_stack;
        for ( int i = 0; i < s.size(); i++ ) {
            if ( s[i] == '{' ) bracket_stack.push('}');
            else if ( s[i] == '[' ) bracket_stack.push(']');
            else if ( s[i] == '(') bracket_stack.push( ')');
            else if ( bracket_stack.empty() || s[i] !=  bracket_stack.top() ) return false;
            else  bracket_stack.pop();
        }


        return bracket_stack.empty();
    }
};