• PHP 判断括号是否闭合


    一开始的思路就是判断每种括号的开闭数量是否相等,其实虽然也能实现但是搞得太复杂了;

    后来查了查,只需设一个常量,左括号  +1,右括号   -1,闭合的话为0,没闭合的话不为0,

    出现<0即为顺序不对。

    <?php
    
    $str = '(())()';
    if ($str == '(' || $str == ')') {
        die('未闭合');
    }
    $arr = str_split($str);
    echo check($arr);
    
    function check($arr = [])
    {
        $d = 0;
        foreach ($arr as $k => $v) {
            if ($v == '(') {
                $d += 1;
            }
            if ($v == ')') {
                $d -= 1;
            }
            if ($d < 0) {
                break;
            }
        }
        return $d == 0 ? '已闭合' : '未闭合';
    }
  • 相关阅读:
    改造二叉树
    汽车加油行驶问题
    [SHOI2012]回家的路
    子串
    P3558 [POI2013]BAJ-Bytecomputer
    HDU
    UVALive
    ZOJ
    HDU
    牛客小白月赛2 题解
  • 原文地址:https://www.cnblogs.com/rxbook/p/10571187.html
Copyright © 2020-2023  润新知