判断一个字符串中的括号是否是闭合的,有以下几点注意:
- 判断字符串中是否含有"()",如果不包含,则直接返回
- 循环字符串,判断含有的"()",是否是相等的
- 如果")"在前,则不计算
<?php
/**
* 判断一个字符串中的括号是否闭合
*/
function checkStr($str) {
if(empty($str)) {
return "字符串不能为空";
}
if(strpos($str, '(' ) ===false && strpos($str, ')' ) ===false) {
return "字符串:" . $str . "没有()";;
}
$str_len = strlen($str);
$j = $z = 0;
for ($i=0; $i < $str_len; $i++) {
if($str[$i] == '(') {
$j++;
}
if($str[$i] == ')') {
if($j > 0) {
$j--;
}else{
$z = 1;
}
}
}
if(empty($j) && empty($z)) {
return "字符串:" . $str . "是闭合的";
}
return "字符串:" . $str . "是没有闭合的";
}
$str = '()(()[dsfdfddff]';
var_dump(checkStr($str));