给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。
function isValid($s) { $msg=false; if($s==''){ $msg=true; }else{ $c=strlen($s); $d=$c%2; $zhan=array(); if($d==0){ for($i=0;$i<$c;$i++){ $ca=$s[$i]; if(empty($zhan)){ if(in_array($ca,array(']','}',')'))){ $zhan[]='11111'; break; }else{ $zhan[]=$ca; } }else{ $kao=array_pop($zhan); if($ca==')' && $kao=="("){ continue; }elseif ($ca==']' && $kao=="["){ continue; }elseif ($ca=='}' && $kao=="{"){ continue; }else{ $zhan[]=$kao; $zhan[]=$ca; } } } if(empty($zhan)){ $msg=true; } } } return $msg; }