liwya 发表于 2018-12-18 10:49:23

php程序员面试之百度面试题

  面试题不同公司不一样像百度公司要求算法高这个也能理解了,下面整理了一道据说是百度的面试题,我们来看看它的算法与答案吧。
  据说是一个百度php的面试题,已给定一个数组:
  $arr = array(‘b’=>’a’, ‘c’=>’a’, ‘e’=>’b’, ‘d’=>’b’, ‘f’=>’c’, ‘g’=>’e’, ‘h’=>’f’);
  写一个算法,完成到以下格式的转换:
  
array (   'a' => array (         'b' => array (             'e' => array (                => 'g',             ),             => 'd',         ),         'c' => array (             'f' => array (                => 'h',             ),         ),   ), )  
  这个结构应该属于一种Trie树。当时在写的时候由于没发现array_keys()函数第二个参数(汗一个先),于是写了以下这个方法来
  虽然有点儿奇葩,至少还是实现了。以下是某网友使用array_keys()的另一解法:
function _array_keys($k, $arr) {   $return = array();   if($ret = array_keys($arr, $k)) {         foreach($ret as $v) {             if($t = _array_keys($v, $arr)) {               $return[$v] = $t;             } else {               $return[] = $v;             }         }   }   return $return; }
页: [1]
查看完整版本: php程序员面试之百度面试题