美文网首页
有效括号

有效括号

作者: iamlyly | 来源:发表于2019-06-14 11:12 被阅读0次

import java.util.*;

/**

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

  • 有效字符串需满足:

  • 左括号必须用相同类型的右括号闭合。

  • 左括号必须以正确的顺序闭合。

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

  • 来源:力扣(LeetCode)

  • 链接:https://leetcode-cn.com/problems/valid-parentheses
    /
    public class EffectiveBrackets {
    /
    *

    • 利用栈来实现,如果遇见右括号,判断栈顶元素是不是对应的左括号,是则继续匹配,不是则返回false

    • 时间复杂度:O(n)O(n),因为我们一次只遍历给定的字符串中的一个字符并在栈上进行 O(1)O(1) 的推入和弹出操作。

    • 空间复杂度:O(n)O(n),当我们将所有的开括号都推到栈上时以及在最糟糕的情况下,我们最终要把所有括号推到栈上。例如 ((((((((((

    • @param s

    • @return
      */
      public boolean isValid(String s) {
      Stack<Character> stack = new Stack<>();
      Map<Character,Character> correctBrackets = new HashMap<>();
      correctBrackets.put(')','(');
      correctBrackets.put(']','[');
      correctBrackets.put('}','{');
      for(int i=0;i<s.length();i++) {
      char c = s.charAt(i);
      if(correctBrackets.containsKey(c)){
      if(stack.isEmpty()||stack.pop()!=correctBrackets.get(c)) return false;
      }else stack.push(c);

      }
      return stack.isEmpty();
      }
      public static void main(String[] args){
      EffectiveBrackets effectiveBrackets = new EffectiveBrackets();
      System.out.println(effectiveBrackets.isValid("()[]{}"));
      }
      }

相关文章

  • 括号生成 (有效括号)

    题目 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例: 输入...

  • 回溯算法和深度优先搜索(二)

    先看一道题目: 括号生成。 输入一个整数 ,罗列出所有有效的括号组合。有效的括号组合是指 左括号开始,右括号结束,...

  • 有效括号

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

  • 有效括号

    import java.util.*; /** 给定一个只包括 '(',')','{','}','[',']' 的...

  • 有效括号

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

  • 每天一道算法题4

    【括号有效配对】括号有效配对是指:1) 任何一个左括号都能找到和其正确配对的右括号2)任何一个右括号都能找到和其正...

  • leetcode--day-3

    题目 有效括号字符串为空 ("")、"(" + A + ")" 或 A + B,其中 A 和 B 都是有效的括号字...

  • 1111. 有效括号的嵌套深度

    题目: 有效括号字符串 定义:对于每个左括号,都能找到与之对应的右括号,反之亦然。详情参见题末「有效括号字符串」部...

  • 打开第32天:有效括号的嵌套深度

    1. 题目 有效括号字符串定义:对于每个左括号,都能找到与之对应的右括号,反之亦然。详情参见题末「有效括号字符串」...

  • LeetCode-1021-删除最外层的括号

    有效括号字符串为空 ("")、"(" + A + ")" 或 A + B,其中 A 和 B 都是有效的括号字符串,...

网友评论

      本文标题:有效括号

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