题目

image.png

思路

  • 利用栈进行比较

    代码

    1. public boolean isValid(String s) {
    2. int n = s.length();
    3. if (n % 2 == 1) {
    4. return false;
    5. }
    6. Map<Character, Character> pairs = new HashMap<Character, Character>() {{
    7. put(')', '(');
    8. put(']', '[');
    9. put('}', '{');
    10. }};
    11. Deque<Character> stack = new LinkedList<Character>();
    12. for (int i = 0; i < n; i++) {
    13. char ch = s.charAt(i);
    14. if (pairs.containsKey(ch)) {
    15. if (stack.isEmpty() || stack.peek() != pairs.get(ch)) {
    16. return false;
    17. }
    18. stack.pop();
    19. } else {
    20. stack.push(ch);
    21. }
    22. }
    23. return stack.isEmpty();
    24. }

    有效括号