zoukankan      html  css  js  c++  java
  • 利用递归求字符串的子序列(从左到右)

    1.PHP实现

    <?php
    //获取字符串str 的子序列
    //如 $str = 'abcdefg'; 其所有子序列为$str1='a',$str2='b',
    //$str3='c' ...
    
    //str固定不变,
    //index此时来到的位置,要 or 不要
    //如果index来到str中的终止位置,把沿途路径放入结果集中
    //之前做出的选择就是path
    //                     a
    //            1       /      0
    //                   b   b
    //            1     /  /    0
    //                 c  c c  c
    //            1   / / / / 0
    //               d  dd dd dd d
    //                   ...
    //       字序列个数 2^(n-1),n为字符串的长度
    function getSubSequeuece($arrChar=[],$index=0,$path,&$result)
    {
        $num = count($arrChar);
        if($num==0)
           return;
        if($num == ($index+1)){
           $result[] = $path;
           return;
        }
        //通过某个节点
        $string = $path.$arrChar[$index];
        $index++;
        getSubSequeuece($arrChar,$index,$string,$result);
        //不通过某个节点
        $string2 = $path;
        getSubSequeuece($arrChar,$index,$string2,$result);
    
    }
    
    $arrChar=['H','e','l','l','o',',','W','o','r','l','d','!'];
    $result=[];
    getSubSequeuece($arrChar,0,'',$result);
    
    print_r($result);
  • 相关阅读:
    web工程导入新环境的注意事项
    Mysql group by,order by,dinstict优化
    Dijkstra and Floyd算法
    百度面试题
    腾讯面试题
    百度笔试3
    百度笔试2
    百度笔试1
    百度2011实习生招聘笔试题
    百度2011.10.16校园招聘会笔试题
  • 原文地址:https://www.cnblogs.com/indifferent/p/14388052.html
Copyright © 2011-2022 走看看