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
  • 相关阅读:
    测试开发面试集锦_数据库
    测试开发面试集锦_linux
    测试开发面试题集锦_java
    Java中equals 和==的区别
    定时清理文件shell脚本
    java文件上传,upload使用
    python 获取错误日志,并发送邮件
    c语言代码审计规范
    渗透测试之nmap
    渗透测试之GoogleHack
  • 原文地址:https://www.cnblogs.com/patatoforsyj/p/9619724.html
Copyright © 2011-2022 走看看