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
  • 相关阅读:
    卤菜技巧
    JS实现延迟
    软件项目版本号的命名规则及格式
    EF复合主键
    验证码和验证控件
    还原数据库,数据库提示正在还原中的处理办法
    更新汇总行
    centOS7挂在windows移动硬盘方法
    关于this、Echarts中的data
    SQLServer 查看SQL语句的执行时间
  • 原文地址:https://www.cnblogs.com/patatoforsyj/p/9619724.html
Copyright © 2011-2022 走看看