Leetcode PHP题解--D135 20. Valid Parentheses

skys215 -
Leetcode PHP题解--D135 20. Valid Parentheses
D135 20. Valid Parentheses题目链接

20. Valid Parentheses

题目分析

这道题也比较经典,就是括号匹配题。

给出一个包含小、中、大括号的字符串,判断左右括号是否匹配。

要注意出现顺序,不能串。也要注意有可能会出现空字符串。

解题思路

这道题的经典做法是用栈来实现。

遇到左括号时,直接入栈。遇到右括号时,判断当前括号类型和栈顶端,即出栈时的括号类型是否相同。如果相同则继续判断。如果不同则返回false。

遍历完所有字符时,如果栈内还有括号剩余,即有括号没有被匹配,也视为false。

最终代码
<?php

class 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;
        }
    }
}

若觉得本文章对你有用,欢迎用爱发电资助。

特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。

php介绍

PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。

Tags 标签

leetcodephp

扩展阅读

加个好友,技术交流

1628738909466805.jpg