LeetCode 有效的括号
使用栈实现
class Solution {
/**
* @param String $s
* @return Boolean
*/
function isValid($s) {
$stack = new SplStack();
$len = strlen($s);
$map = [
'(' => ')',
'{' => '}',
'[' => ']',
];
for($i=0; $i<$len; $i++){
if(isset($map[$s[$i]])) {
// 左括号
$stack->push($s[$i]);
}else{
// 右括号 此时判断元素、是否栈空
if($stack->isEmpty()){
return false;
}
if($map[$stack->pop()] != $s[$i]){
return false;
}
}
}
return $stack->isEmpty();
}
}
class Solution {
/**
* @param String $s
* @return Boolean
*/
function isValid($s) {
$map = [
'(' => ')',
'{' => '}',
'[' => ']',
];
$len = strlen($s);
$lStr = ['(','[','{'];
$arr = [];
for($i=0; $i<$len; $i++) {
if(in_array($s[$i], $lStr)) {
array_push($arr, $s[$i]);
}else{
if($map[array_pop($arr)] != $s[$i]){
return false;
}
}
}
return count($arr) == 0;
}
}