美文网首页
20. Valid Parentheses

20. Valid Parentheses

作者: 苏州城外无故人 | 来源:发表于2018-12-24 22:11 被阅读0次
    题目以及测试用例

    思路:数据结构:stack
    循环读取字符,如果是括号后半部分则判断栈是否为空以及栈顶是否是该括号前半部分。
    如果是括号前半部分,则入栈。
    最后,栈是否为空判断括号字符串是否有效。


    class Solution {
        
      public boolean isValid(String s) {
        HashMap<Character, Character> hashMap = new HashMap<Character, Character>();
        hashMap.put(')', '(');
        hashMap.put('}', '{');
        hashMap.put(']', '[');
        Stack<Character> stack = new Stack<Character>();
        for (int i = 0; i < s.length(); i++) {
                char c = s.charAt(i);
                if (hashMap.containsKey(c)) {
                    Character topElement = stack.empty() ? '#' : stack.pop();
                    if (topElement != hashMap.get(c)) {
                        return false;
                    }
                }
            else {
               stack.push(c); 
            }
                
            }
            return stack.isEmpty();
      }
    }
    

    相关文章

      网友评论

          本文标题:20. Valid Parentheses

          本文链接:https://www.haomeiwen.com/subject/ewptlqtx.html