Earlier we had seen problem Valid Parentheses, where only one type of parentheses was present in the input string, in this problem we can have multiple types of parentheses present in the input String. This problem can be considered as extension of Valid Parentheses problem.

Approach:

Using Stack:

Initialize a Stack.

Iterate the input string, one character at a time.

Check if character is open bracket

‘(‘, if yes then push closed bracket ‘)’ to stack.

‘[‘, if yes then push closed bracket ‘]’ to stack.

‘{‘, if yes then push closed bracket ‘}’ to stack

Else check if character is close bracket, either ‘)‘ or ‘]’ or ‘}’ if yes then

Check if stack is empty, if yes return false.

Else if stack is not empty, pop from stack and popped bracket should be same as current bracket else return false.