美文网首页
字符串中有效的括号

字符串中有效的括号

作者: 我还是老油条 | 来源:发表于2020-10-27 15:54 被阅读0次

判断括号是否有效

1.使用栈的先进后出,先把前括号对应的后括号压栈

当后面再遇到后括号的时候,只用比较相等就可以了。

/**

* 时间复杂度O(N)  每个元素都要入栈一遍

*

* @param str

* @return

*/

private static BooleanvalidBracket(String str) {

if (isNullOrEmpty(str)) {

return false;

    }

Stack stack =new Stack<>();

    for (Character s : str.toCharArray()) {

if (s.equals('(')) {

stack.push(')');

        }else if (s.equals('[')) {

stack.push(']');

        }else if (s.equals('{')) {

stack.push('}');

        }else if (stack.isEmpty()|| !stack.pop().equals(s)) {

return false;

        }

}

return stack.isEmpty();

}

另外一种解法:

利用字符串替换,将所有的配对的替换后,结果是是空,即是匹配成功的

/**

* ((([[{{}}]])))

* ((([[{}]])))

* ((([[]])))

* ((([])))

* ((()))

* (())

* ()

* @param s

* @return

*/

private static boolean isValid(String s) {

if (isNullOrEmpty(s)) {

return false;

    }

int length;

    do {

length = s.length();

        s = s.replace("()", "").replace("[]", "").replace("{}", "");

    }while (length != s.length());

    return s.length() ==0;

}

相关文章

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

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

  • 字符串的括号匹配(python)

    括号匹配说明 本方法字符串中只有 () 括号 算法思路 从左到右遍历字符串 如果不是括号,默认是有效字符,遍历下一...

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

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

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

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

  • leetcode--day-3

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

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

    有效括号的嵌套深度 题目 有效括号字符串 仅由 "(" 和 ")" 构成,并符合下述几个条件之一: 空字符串连接,...

  • 20. 有效的括号

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

  • 8,有效的括号/数组与字符串

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

  • [day6] [LeetCode] [title20,21]

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

  • 力扣算法 - 有效的括号

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

网友评论

      本文标题:字符串中有效的括号

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