[算法]括号字符串是否合法

括号字符串是否合法

某个字符串只包括(,判断其中的括号是否匹配正确,比如(()())正确,((())()错误,不允许使用栈

这种类似题的常见思路是栈,对于左括号入栈,如果遇到右括号,判断此时栈顶是不是左括号,是则将其出栈,不是则该括号序列不合法。

面试官要求不能使用栈,可以使用计数器,利用int count字段。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

public static boolean checkBrackets(String str) { char[] cs = str.toCharArray(); int count = 0; for ( int i = 0; i < cs.length; i++) { if (cs[i] == ‘(‘) count++; else { count–; if ( count < 0) { return false; } } } return count == 0; }

    原文作者:括号匹配问题
    原文地址: https://blog.csdn.net/kangbin825/article/details/53353109
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞