package com.hikvision.ipsc.convergence.demo.test;
import java.util.HashMap;
import java.util.Map;
import java.util.Stack;
public class ParenthesisMatch {
public static boolean match(String str) {
Map<Character, Character> map = new HashMap<>();
map.put(')', '(');
map.put(']', '[');
map.put('}', '{');
Stack<Character> stack = new Stack<>();
for (int i = 0; i < str.length(); i++) {
Character c = str.charAt(i);
if (map.containsValue(c)) {
stack.push(c);
} else if (map.containsKey(c)) {
if (stack.isEmpty())
return false;
if (stack.peek() == map.get(c))
stack.pop();
else
return false;
}
}
return stack.isEmpty() ? true : false;
}
public static void main(String[] args) {
boolean res = match("[({}[])]");
System.out.println(res);
}
}