php判断括号匹配,PHP判断表达式中括号是否匹配

该博客探讨了一个用于检查表达式中括号是否匹配的算法。通过使用栈数据结构,当遇到左括号时压栈,遇到右括号时尝试出栈并与之匹配。如果遇到右括号但栈为空或者出栈的左括号与当前右括号不匹配,则返回错误信息。示例中展示了不同情况的匹配结果,包括正确匹配、缺少左括号和缺少右括号的情况。
摘要由CSDN通过智能技术生成

/**

* title: 判断表达式中括号是否匹配

* Description: () 匹配 )(不匹配 利用压栈和出栈

* @author Mr Lv

* @date 2011-11-28

*/

function isValid($expstr) {

$temp = array();

for ($i=0; $i

$ch = $expstr[$i];

switch($ch) {

case '(':

array_push($temp, '(');

break;

case ')':

if (empty($temp) || array_pop($temp) != '(') {

return "缺少左括号(";

}

}

}

return empty($temp) == true ? "表达式匹配" : "缺少右括号)";

}

$expstrA = "(1+3(6*4)-(2+3))()(";

$expstrB = "(1+3(6*4)-(2+3))()";

$expstrC = "(1+3(6*4)-(2+3)))";

echo isValid($expstrA);

echo "
";

echo isValid($expstrB);

echo "
";

echo isValid($expstrC);

?>

页面信息:

缺少右括号)

表达式匹配

缺少左括号(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值