美文网首页
php刷leetCode有效的括号

php刷leetCode有效的括号

作者: 吕艳凯 | 来源:发表于2019-12-04 10:18 被阅读0次

此题主要考察栈的操作
栈(后进先出(LIFO))
所有操作都是通过栈顶部的元素来操作的

有效的括号
解题方法 :
遇上(压栈,遇上)出栈,最后检查栈内是否有元素即可

具体代码:

class Code{

    public function isValid($str){
        //字符串拆分为数组
        $arr = str_split($str);
        //定义对应数组
        $arrMap = array('('=>')','['=>']','{'=>'}');
        //定义存栈数组
        $stack = array();
        foreach ($arr as $key => $value) {
            //栈为空压入数组的第一个元素
            if(empty($stack)){
                $stack[] = $value;
            }else{
                //取栈顶
                $strEnd = end($stack);
                //若栈内已存在右括号,则表示无匹配内容
                if(!isset($arrMap[$strEnd])){
                    return false;
                }
                //若栈顶的第一个元素与数组的元素有对应关系出栈
                if($arrMap[$strEnd] == $value){
                    array_pop($stack);
                }else{
                    //若无对应关系,继续入栈
                    $stack[] = $value;
                }
            }
        }

        if($stack === array()){
            return true;
        }

        return false;
    }
    
}
$obj = new Code();
$res = $obj->isValid('({[]})');
var_dump($res);
$res = $obj->isValid('(){}[]');
var_dump($res);
$res = $obj->isValid('(]{}');
var_dump($res);
$res = $obj->isValid('()[');
var_dump($res);

输出结果:


结果

相关文章

  • php刷leetCode有效的括号

    此题主要考察栈的操作栈(后进先出(LIFO))所有操作都是通过栈顶部的元素来操作的 解题方法 : 遇上(压栈,遇上...

  • LeetCode刷题-有效的括号

    前言说明 算法学习,日常刷题记录。 题目连接 有效的括号[https://leetcode-cn.com/prob...

  • PHP之高频考点算法合辑

    有效括号 LC: Valid Parentheses - LeetCode[https://leetcode.co...

  • 有效括号 Click here for leetcode details[https://leetcode-cn....

  • Python小白 Leetcode刷题历程 No.31-No.3

    Python小白 Leetcode刷题历程 No.31-No.35 下一个排列、最长有效括号、搜索旋转...

  • LeetCode 32. 最长有效括号 | Python

    32. 最长有效括号 题目来源:力扣(LeetCode)https://leetcode-cn.com/probl...

  • leetcode 有效的括号

    给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足:...

  • leetcode: 有效的括号

    题目 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/val...

  • LeetCode | 有效的括号

    在记事本中写算法题和在纸上写其实感觉差不多,反正是不能进行调试。想起某高手的话,写代码要做到“人机合一”,写高级语...

  • LeetCode——有效的括号

    题目描述 一、CPP 栈 解题思路:这个问题经典的解法就是使用栈,当遇到左括号就入栈,遇到右括号就与栈顶的元素进行...

网友评论

      本文标题:php刷leetCode有效的括号

      本文链接:https://www.haomeiwen.com/subject/vepkgctx.html