61. Valid Parentheses

Topic :

stack

Difficulty :

easy

Problem Link :


problem statement

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

import java.io.*;
import java.util.*; 
class ValidParentheses
{
  public static void main(String args[]){
      String s="[](){}"; 
        System.out.println(isValid(s));
  }
  static boolean isValid(String s){
        Stack<Character> stack=new Stack<>();
        for(int i=0;i<s.length();i++){
         char ch=s.charAt(i);
         if(ch=='('||ch=='{'||ch=='[')
           stack.push(ch);
         
         else if(ch==')'){
           if(!stack.isEmpty() && stack.peek()=='(')
               stack.pop();
               else
               return false;
            }
         else if(ch=='}'){
             if(!stack.isEmpty() && stack.peek()=='{')
               stack.pop();
               else
               return false;
            }
         else if(ch==']'){
             if(!stack.isEmpty() && stack.peek()=='[')
               stack.pop();
               else
               return false;
            }   
        }
        if(!stack.isEmpty())
         return false;
        else
            return true;
    }
}
Copyright © 2023 KIZLE. - All Rights Reserved.
Website by Kounik Maitra