美文网首页
栈-E20-有效的括号

栈-E20-有效的括号

作者: 三次元蚂蚁 | 来源:发表于2019-03-25 10:44 被阅读0次

题目

  • 概述:给你一个只包含括号的字符串,判断该字符串中括号是否正确闭合,正确闭合的条件如下:
  1. 左括号必须与相同类型的右括号闭合
  2. 所有括号都按正确的顺序闭合
  3. 空字符串也算正确闭合
  • 输入:只包含括号的字符串

  • 输入子项:'(','{','[',')','}',']'

  • 输出:正确闭合为true,反之false

思路

  • 由于每次判断是否闭合都要看前面的一个括号,可以考虑用栈来实现
  1. 如果输入类型是左括号类型则直接入栈
  2. 如果输入类型是右括号则看栈顶元素是否是相同类型的左括号,若是则将左括号出栈,反之就是错误闭合

注意:若栈中没有元素也是错误闭合

  1. 最后看栈中是否有多余的元素,如果有则错误闭合,反之则正确闭合

代码

class Solution {
    public boolean isValid(String s) {
        LinkedList<Character> stack = new LinkedList<>();
        Map<Character, Character> map = new HashMap<>();
        map.put('(', ')');
        map.put('[', ']');
        map.put('{', '}');
        for (char c : s.toCharArray()) {
            switch (c) {
                case '(':
                case '{':
                case '[':
                    stack.push(c);
                    break;
                case ')':
                case '}':
                case ']':
                    if (stack.isEmpty()) {
                        return false;
                    }
                    if (map.get(stack.peek()) != c) {
                        return false;
                    } else {
                        stack.pop();
                    }
                    break;
            }
        }
        return stack.isEmpty();
    }
}

相关文章

  • 栈-E20-有效的括号

    题目 概述:给你一个只包含括号的字符串,判断该字符串中括号是否正确闭合,正确闭合的条件如下: 左括号必须与相同类型...

  • LeetCode-20 有效的括号

    题目:20. 有效的括号 难度:简单 分类:栈 解决方案:入栈出栈 今天我们学习第20题有效的括号,这是一道关于栈...

  • 互联网秋招刷题leetcode总结——栈与队列

    栈 括号类问题 20. 有效的括号(easy) 遍历字符串,每次与栈顶括号进行匹配,匹配成功栈顶弹出,否则继续压入...

  • 栈--有效的括号

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

  • 栈--有效的括号

    目录[https://www.jianshu.com/p/85e18c21317a] 题号[https://lee...

  • 字符串中有效的括号

    判断括号是否有效 1.使用栈的先进后出,先把前括号对应的后括号压栈 当后面再遇到后括号的时候,只用比较相等就可以了...

  • 栈--最长有效括号

    给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度。例:输入: ")()())" ...

  • 栈-有效的括号(20)

  • 数据结构与算法之栈(四)

    一 目录 栈的介绍 栈的接口设计 栈的应用 - 浏览器前进后退 栈的使用 - 匹配有效括号 栈相关面试题 二 简介...

  • 8.30 leetcode刷题(1)

    栈和队列:20 有效的括号 思路:利用栈去做匹配,定义好哪种情况入栈,哪种情况出栈。最后还要判断一下栈是否为空 b...

网友评论

      本文标题:栈-E20-有效的括号

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