zoukankan      html  css  js  c++  java
  • 20. Valid Parentheses

    一、题目

      1、审题

        

       2、分析:

        返回括号组成的字符串其中的括号是否都能正确闭合。

    二、解答

      1、分析:

        方法一:

          用栈实现。

          左括号进栈;

          右括号时栈顶出栈并判断是否匹配。最终判断栈是否为空即可。

      

    class Solution {
        public boolean isValid(String s) {
    
            Stack<Character> stack = new Stack<Character>();
            int len = s.length(), index = 0;
    
            while(index < len) {
                char c = s.charAt(index++);
                if(c == '(' || c == '[' || c == '{')
                    stack.push(c);
                else if(c == ')') {
                    if(!stack.isEmpty() && stack.peek() == '(')
                        stack.pop();
                    else
                        return false;
                }
                else if(c == ']') {
                    if(!stack.isEmpty() && stack.peek() == '[')
                        stack.pop();
                    else
                        return  false;
                }
                else if(c == '}') {
                    if(!stack.isEmpty() && stack.peek() == '{')
                        stack.pop();
                    else
                        return false;
                }
            }
    
            return  stack.isEmpty();
        }
    }

        方法二:

          用栈实现。

          左括号时,入栈对应的右括号;

          右括号时,栈顶出栈并判断是否与该右括号一致

      

    public class Solution {
        public boolean isValid(String s) {
         
            Stack<Character> stack = new Stack<Character>();
            for(char c: s.toCharArray()) {
                
                if(c == '(') 
                    stack.push(')');
                else if(c == '[')
                    stack.push(']');
                else if(c == '{')
                    stack.push('}');
                else if(stack.isEmpty() || stack.pop() != c)
                    return false;
            }
    
            return stack.isEmpty();
        }
    }
  • 相关阅读:
    Linux下python2.7安装pip
    图片转tfrecords
    Python+argparse+notebook
    Pycharm缺少环境变量+无法获取libcudnn.so.6
    Python手动实现k-means
    手动实现二值化
    Tensorflow+InternalError: Blas GEMM launch failed
    tensorflow-gpu+"Failed to create session"
    Ubuntu16.04+wineQQ+解决版本过低
    /usr/lib/nvidia-384/libEGL.so.1 is not a symbolic link
  • 原文地址:https://www.cnblogs.com/skillking/p/9411544.html
Copyright © 2011-2022 走看看