Valid Parentheses

Tags : string, stack, leetcode, cpp, easy

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

An input string is valid if:

Examples #

Example 1:

Input: s = "()"
Output: true

Example 2:

Input: s = "()[]{}"
Output: true

Example 3:

Input: s = "(]"
Output: false

Constraints #

Solutions #

class Solution {
public:
    bool isValid(string s) {
     stack<char> st;
     for(int i=0; i<s.length(); i++){
       if(s[i]=='{' or s[i]=='[' or s[i]=='(')
         st.push(s[i]);
       else{
         if(st.empty()) return false;
         if(s[i]=='}' and st.top()!='{')
           return false;
         if(s[i]==']' and st.top()!='[')
           return false;
         if(s[i]==')' and st.top()!='(')
           return false;
         st.pop();
       }
     }
      
      if(st.empty()) return true;
      return false;
    }
};