20.有效的括号

boomck 2019-10-15 PM 472℃ 0条

20.有效的括号

坑点:

  1. 传空字符串时
  2. 括号不成对时

思路:

看到的第一反应就是使用堆栈来解决,遇到任意一个左括号就将其推入堆栈,遇到又括号就弹出一个,用弹出的数据进行比较是否成对,一直到字符串读完,堆栈也应该为空。

代码:

class Solution {

    /**
     * @param String $s
     * @return Boolean
     */
    function isValid($s) {
        $length = strlen($s);
        $arr = [];
        if($s == ""){
            return true;
        }
        for($i = 0; $i < $length;$i++){
            $char = substr($s,$i,1);
            if($char == '(' || $char == '[' || $char == '{'){
                array_push($arr,$char);
            } else {
                $c = array_pop($arr);
                var_dump($c);
                if ($char == ')'){
                    if ($c != '('){
                        return false;
                    }
                } else if ($char == ']'){
                    if ($c != '['){
                        return false;
                    }
                } else if ($char == '}'){
                    if ($c != '{'){
                        return false;
                    }
                }
            }
        }
        if(sizeof($arr)>0){
            return false;
        }
        return true;
    }
}
标签: none

非特殊说明,本博所有文章均为博主原创。

评论啦~