image.png

    1. package com.algorithm.demo.stack;
    2. import java.util.HashMap;
    3. import java.util.Map;
    4. import java.util.Stack;
    5. /**
    6. * @Author leijs
    7. * @date 2022/4/15
    8. */
    9. public class StackDemo {
    10. public static void main(String[] args) {
    11. System.out.println(braceMatch("[]{}"));
    12. System.out.println(braceMatch("({[]})"));
    13. System.out.println(braceMatch("[(])"));
    14. System.out.println(braceMatch("[]{"));
    15. }
    16. public static boolean braceMatch(String str) {
    17. Stack<Character> stack = new Stack<>();
    18. Map<Character, Character> map = new HashMap<>();
    19. map.put('(', ')');
    20. map.put('[', ']');
    21. map.put('{', '}');
    22. for (char ch : str.toCharArray()) {
    23. if (map.containsKey(ch)) {
    24. stack.push(ch);
    25. } else {
    26. if (stack.isEmpty()) {
    27. return false;
    28. }
    29. Character top = stack.pop();
    30. if (map.get(top) != ch) {
    31. return false;
    32. }
    33. }
    34. }
    35. return stack.isEmpty();
    36. }
    37. }