确定打开括号的数量"("等于括号")"

Taw*_*ani 2 string algorithm

给定以下格式的字符串:

"(1 AND (2 OR 3) AND 4)"
Run Code Online (Sandbox Code Playgroud)

确定"打开"括号的数量"("等于"关闭"括号")"的最快方法是什么.

注意:字符串可能是几百个字符长.

dar*_*ioo 9

只需使用一个以0开头的简单计数器.

当你遇到"(",将它增加一个.当你遇到")"时,减少一个.

如果计数器最后不是0,则表示您不匹配.

而且,正如其他人所提到的,如果计数器变为负数,这意味着)(已经发生了诸如此类的情况.发出错误信号并停止进一步解析.

  • 此外,如果你得到一个'计数器<0',你就知道它们是不平衡的. (3认同)

Sve*_*ach 5

  1. 将计数器初始化为零.

  2. 迭代字符串的字符.

    一个.在左括号上,增加计数器.

    湾 在右括号中,减少计数器.

    C.如果计数器为负,则输出错误.

  3. 如果循环后计数器不等于零,则输出错误.

这也可以捕获类似于)(开启和关闭数量的匹配的情况,但无论如何都应该被认为是错误的.