zoukankan      html  css  js  c++  java
  • leetcode-有效的括号

    给定一个只包括 '('')''{''}''['']' 的字符串,判断字符串是否有效。

    有效字符串需满足:

    1. 左括号必须用相同类型的右括号闭合。
    2. 左括号必须以正确的顺序闭合。

    注意空字符串可被认为是有效字符串。

    示例 1:

    输入: "()"
    输出: true
    

    示例 2:

    输入: "()[]{}"
    输出: true
    

    示例 3:

    输入: "(]"
    输出: false
    

    示例 4:

    输入: "([)]"
    输出: false
    

    示例 5:

    输入: "{[]}"
    输出: true

    思路:显而易见用来做。观察可以得到:只把左括号加入栈中,而当遍历的是右括号,则需要判断栈顶元素是否和遍历元素对应,如果对应则将左括号出栈,不对应或者栈为空,则不符合要求。  

    代码如下:

    class Solution {
        public boolean isValid(String s) {
           Stack<Character> stack=new Stack();
            char[] c=s.toCharArray();
            for(int i=0;i<s.length();i++){
                if(c[i]=='('||c[i]=='{'||c[i]=='[')stack.push(c[i]);
                else if(c[i]==')'){
                     if(!stack.isEmpty()&&stack.peek()=='(')stack.pop();
                    else return false;
                }else if(c[i]=='}'){
                     if(!stack.isEmpty()&&stack.peek()=='{')stack.pop();
                    else return false;
                }else if(c[i]==']'){
                    if(!stack.isEmpty()&&stack.peek()=='[')stack.pop();
                    else return false;
                }
            }
           if(!stack.isEmpty())return false; //添加元素都是左括号当然不符合要求
            return true;
        }
    }

    给定一个只包括 '('')''{''}''['']' 的字符串,判断字符串是否有效。

    有效字符串需满足:

    1. 左括号必须用相同类型的右括号闭合。
    2. 左括号必须以正确的顺序闭合。

    注意空字符串可被认为是有效字符串。

    示例 1:

    输入: "()"
    输出: true
    

    示例 2:

    输入: "()[]{}"
    输出: true
    

    示例 3:

    输入: "(]"
    输出: false
    

    示例 4:

    输入: "([)]"
    输出: false
    

    示例 5:

    输入: "{[]}"
    输出: true
  • 相关阅读:
    pidgin的未认证解决办法
    题解【洛谷P1074】[NOIP2009]靶形数独
    题解【洛谷P1315】[NOIP2011]观光公交
    题解【BZOJ4145】「AMPPZ2014」The Prices
    题解【洛谷P4588】[TJOI2018]数学计算
    题解【洛谷P3884】[JLOI2009]二叉树问题
    题解【SP8002】HORRIBLE
    树链剖分学习笔记
    题解【洛谷P1807】最长路_NOI导刊2010提高(07)
    题解【洛谷P1995】口袋的天空
  • 原文地址:https://www.cnblogs.com/patatoforsyj/p/9619724.html
Copyright © 2011-2022 走看看