草庐IT

递归算法

全部标签

PHP哈夫曼解码算法

我最近申请了一份工作,收到了一个hackerrank考试,有几个问题。其中一个是霍夫曼解码算法。有类似问题可用here这比我能更好地解释格式。实际任务是接受两个参数并返回解码后的字符串。第一个参数是代码,它是一个字符串数组,如:["a00","b101","c0111","[newline]1001"]这就像:单个字符,两个制表符,霍夫曼代码。由于黑客排名的设置方式,换行符被指定为这种格式。第二个参数是要使用代码解码的字符串。例如:101000111=bac这是我的解决方案:functiondecode($codes,$encoded){$returnString='';$codeAr

php - 组合递归迭代器结果 : children with parents

我正在尝试遍历包含大量PHP文件的目录,并检测每个文件中定义了哪些类。考虑以下几点:$php_files_and_content=newPhpFileAndContentIterator($dir);foreach($php_files_and_contentas$filepath=>$sourceCode){//echo$filepath,$sourceCode}上面的$php_files_and_content变量表示一个迭代器,其中键是文件路径,内容是文件的源代码(好像这在示例中并不明显)。然后将其提供给另一个迭代器,它将匹配源代码中所有定义的类,ala:classDefined

PHP处理递归的能力

我最近在一些地方看到有人说PHP的递归能力很差。最近写了一个用于图遍历的递归php函数,发现和java相比速度很慢。我不知道这是因为php的递归能力还是因为php通常比java慢。一些谷歌搜索揭示了这一点(http://bugs.php.net/bug.php?id=1901)[7Aug199912:25pmUTC]zeevatcvsdotphpdotnetPHP4.0(Zend)usesthestackforintensivedata,ratherthanusingtheheap.Thatmeansthatitstolerancerecursivefunctionsissignifi

php - 创建多维数组的算法

我正在使用PHP,我需要帮助来完成一项看似简单的数组任务。这是我的示例数组:$arr=array(0=>NULL,1=>NULL,2=>NULL,3=>NULL,8=>'2',9=>'2',10=>'2',11=>'2',12=>'3',13=>'3',14=>'8',15=>'8',16=>'14',17=>'14',18=>'14');数组的键代表ID(唯一)。这些值是parentIDs,即父“节点”的ID。NULL表示没有parentID(即新数组的第一个维度)。现在,我需要创建一个新的多维数组,其中包含所有子元素的父ID。(这听起来可能很困惑,抱歉我缺乏描述能力。下面有一个例子

php - 按父/子 ID 重组数组。递归?

我有一组位置。这些位置中的每一个都可以有子位置。每个子位置也可以有子位置,依此类推:$locations=array(array("id"=>1,"parent_id"=>0,"name"=>"England"),array("id"=>2,"parent_id"=>0,"name"=>"Scotland"),array("id"=>3,"parent_id"=>0,"name"=>"Ireland"),array("id"=>4,"parent_id"=>0,"name"=>"Wales"),array("id"=>5,"parent_id"=>1,"name"=>"EastEngl

php - 编写表达式以递归地提取括号之间的数据

我正在尝试编写一个正则表达式,将字符串拆分为匹配花括号内的单独元素。首先,它需要递归,其次,它必须返回偏移量(与PREG_OFFSET_CAPTURE一样)。我实际上认为这可能是处理这些数据的一种效率较低的方法,但我不确定是否有一种更简单、性能更高的技术。(如果你有,我很想听听!)因此,输入可以采用以下格式:Hello{#name}!I'ma{%string|sentence|bitof{#random}text}如果数据是这种格式,处理数据就足够容易了:Hello{#name}!I'ma{%string|sentence|bitofrandomtext}但是,处理时的问题是另一组花括

php - 图间距算法

我正在寻找一种算法,该算法可用于确定要在屏幕上显示的数字对象的xy坐标。每个对象都可以与另一个对象相关,可以有任意数量的关系,也可以有任意数量的这些对象。对于显示这些对象的区域的整体大小没有限制。我正在用php编写此代码,希望将坐标存储在数组中。 最佳答案 一种方法是使用伪物理模型。如果它们相连,您的物体会产生排斥力和吸引力。您根据施加到它们的力的总和移动对象:在每一步计算施加到一个对象的力的总和,并沿力的方向移动它。在伪代码中,一次迭代是:foreachobjecto1force[o1]=0foreachobjecto2ifo1a

PHP - 从递归函数返回数组时出错

经过两个小时的摸索和谷歌搜索——我被困住了!按照标题,我试图返回一个在函数循环时建立的数组。我只想在else上返回数组变量,但它不会合作。它只是从函数中返回为空白,但是在else中我可以打印它并按预期显示。它只是不会返回$open_array变量中的数组。任何想法(或滥用)将不胜感激!functionfind_parent($number,$open=false){if(isset($other_variable[$number])){foreach($other_variable[$number]as$val){$open[$val->id]=[$val->id;$open=find

php - fleury 或 hierholzer 算法的代码示例?

我正在寻找Fleury或Hierholzer算法的代码示例。我找不到我的语言版本吗? 最佳答案 这是一个不错的pascal代码http://linhtruong.com/Blog/index.php?page=fleury-algorithm---find-euler-circuit但我想知道它是如何工作的?我的php代码是别的东西。 关于php-fleury或hierholzer算法的代码示例?,我们在StackOverflow上找到一个类似的问题: htt

PHP:引用在递归调用之间共享

我有三个函数,foo、bar和baz,在我看来,它们应该产生相同的结果。但是,我遇到了一个问题,即引用在递归函数调用之间共享。$array=array('subs'=>array('a'=>1,'b'=>2,),);functionfoo(&$array,$value,$callAgain=true){$subs=&$array['subs'];foreach($subsas&$sub)$sub=$value;if($callAgain){$copy=$array;foo($copy,$value+1,false);}}functionbar(&$array,$value,$callA