力扣题-使用栈判断是否是有效的括号
码农天地 -使用栈判断是否是有效的括号
题来源于力扣: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开发领域。
上一篇: php date如何转换时间戳