卡塔兰数计算n对小括号的有几种呢

<?php
/**
* 举例:
* ()
* (()) ()()
* (())() ((())) ()()() (())() ()(())
*/

function combination($n){
    $char = '()';
    $result = array('');
    $k=0;
    for($i=1; $i<=$n; $i++){
        $result = insert($result, $char);
    }
    return $result;
}

function insert($arr, $char){
    $result = array();
    foreach($arr as $val){
        for($i=0; $i<strlen($val)+1; $i++){
            $str = substr($val,0,$i).$char.substr($val,$i,strlen($val)-$i);
            if(!in_array($str, $result)){
                $result[] = $str;
            }
        }
    }
    return $result;
}

print_r(combination($_GET['n']));
//end

转载请注明:小Y » 卡塔兰数计算n对小括号的有几种呢

赞 (1) 评论 (0) 分享 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址