Valid Parentheses || leetcode solution

 20Valid Parentheses

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

Example 2:

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

Example 3:

Input: s = "(]"
Output: false

 

Constraints:

  • 1 <= s.length <= 104
  • s consists of parentheses only '()[]{}'.


solution :

class Solution {
public:
    bool isValid(string s) {
         stack<char>a;
        if(s[0] == '}' || s[0] == ')' || s[0] == ']')
            return false;
         a.push(s[0]);
         int i = 1;
             while(i < s.length())
             {
                 if(s[i] == '{' || s[i] == '[' || s[i] =='(' )
                 {
                    a.push(s[i]);
                 }
                 else
                 {    
                      if(a.empty())
                          return false;
                      char t = a.top();
                      if((s[i] == '}' && t == '{') || (s[i] == ']' && t == '[') || (s[i] == ')' && t == '(') )
                          a.pop();
                      else
                          return false;
                      
                 }
                i++;
             }
        if(a.empty())
            return true;
            return false;
    }
};


Comments