力扣题-使用栈判断是否是有效的括号

码农天地 -
力扣题-使用栈判断是否是有效的括号
使用栈判断是否是有效的括号

题来源于力扣:https://leetcode-cn.com/probl...

思路:遇见左字符,将左字符入栈

遇见右字符:

如果栈是空的,说明括号无效如果栈不为空,将栈顶字符出栈,与右字符之匹配如果左右字符不匹配,说明括号无效如果左右字符匹配,继续扫描下一个字符

所有字符扫描完毕后:

栈为空,说明括号有效栈不为空,说明括号无效
require 'Stack.php';
class Solution {

    protected static $solution = [
        '(' => ')',
        '{' => '}',
        '[' => ']'
    ];
    /**
     * 题目来源力扣
     * https://leetcode-cn.com/problems/valid-parentheses/
     * 判断是否是有效的括号
     * @param String $s
     * @return Boolean
     */
    public function isValid($s) {
        $stack = new Stack();
        $len = strlen($s);
        for($i=0;$i<$len;$i++){
            $char = $s[$i];
            if (in_array($char,array_keys(self::$solution))){
              // 入栈。左字符进行入栈,为什么是左字符,如果第一个是右字符的话,那肯定不是有效的括号
                $stack->push($char);
            }else{
                if($stack->isEmpty()) return false;
                $left = $stack->pop();
                if($char !== self::$solution[$left]) return false;
            }
        }
        return $stack->isEmpty();
    }
}


$solution = new Solution();
$ret = $solution->isValid('([{]}])');
var_dump($ret);

源代码下载:gitee

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

php介绍

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

Tags 标签

php

扩展阅读

加个好友,技术交流

1628738909466805.jpg