D135 20. Valid Parentheses
题目链接
20. Valid Parentheses
题目剖析
这道题也比拟经典,就是括号匹配题。
给出一个蕴含小、中、大括号的字符串,判断左右括号是否匹配。
要留神呈现程序,不能串。也要留神有可能会呈现空字符串。
解题思路
这道题的经典做法是用栈来实现。
遇到左括号时,间接入栈。遇到右括号时,判断以后括号类型和栈顶端,即出栈时的括号类型是否雷同。如果雷同则持续判断。如果不同则返回false。
遍历完所有字符时,如果栈内还有括号残余,即有括号没有被匹配,也视为false。
最终代码
<?phpclass Solution { /** * @param String $s * @return Boolean */ function isValid($s) { if(!strlen($s)){ return true; } $parentheses_array = str_split($s); $stack = []; foreach($parentheses_array as $parenthes){ if($parenthes == '(' || $parenthes == '[' || $parenthes == '{'){ $stack[] = $parenthes; } else{ $prev = array_pop($stack); if(( $prev== '(' && $parenthes == ')') || ($prev == '[' && $parenthes == ']') || ($prev == '{' && $parenthes == '}') ){ continue; } return false; } } var_dump(count($stack)); if(count($stack)){ return false; } else{ return true; } }}
若感觉本文章对你有用,欢送用爱发电赞助。