括号闭合问题

1 答案

使用PHP的array_pop()array_push()模拟一个栈,

  1. 遇到左括号进栈
  2. 遇到右括号出栈,如果栈里没有,说明不闭合
  3. 遍历到最后元素,判断栈内为空,即为闭合
function checkClose($str)
{
    $stack = [];

    for ($i = 0; $i < strlen($str); ++$i) {
        if ($str[$i] == '(') {
            $stack[] = '(';
        }

        if ($str[$i] == ')') {
            $border = array_pop($stack);

            if($border == null) {
                return false;
            }
        }
    }

    if (count($stack) == 0) {
        return true;
    }
    return false;
}
muzi muzi 10 月前 点赞 0