
package com.algorithm.demo.stack;
import java.util.HashMap;
import java.util.Map;
import java.util.Stack;
/**
* @Author leijs
* @date 2022/4/15
*/
public class StackDemo {
public static void main(String[] args) {
System.out.println(braceMatch("[]{}"));
System.out.println(braceMatch("({[]})"));
System.out.println(braceMatch("[(])"));
System.out.println(braceMatch("[]{"));
}
public static boolean braceMatch(String str) {
Stack<Character> stack = new Stack<>();
Map<Character, Character> map = new HashMap<>();
map.put('(', ')');
map.put('[', ']');
map.put('{', '}');
for (char ch : str.toCharArray()) {
if (map.containsKey(ch)) {
stack.push(ch);
} else {
if (stack.isEmpty()) {
return false;
}
Character top = stack.pop();
if (map.get(top) != ch) {
return false;
}
}
}
return stack.isEmpty();
}
}