日期:2014-05-17  浏览次数:20523 次

google的一道面试题目大家来试下
一道算法题,和搜索建议有关的,我搞了很久没搞出来,有能力的试下,我大致说下题目
数组A={a,b,c,d,e,f}
数组B={u,y,w,x,y,z}
输出字符串规律如下:
a
u
ab
uy
ay
ub
abc
uyw
abw
ayw
ubc
uyc
ayw
ubw
.
.
.
先找规律,再求算法, 算法语言不限





------解决方案--------------------
PHP code
$a = array('a', 'b', 'c', 'd', 'e', 'f');
$b = array('u', 'y', 'w', 'x', 'y', 'z');

$r = array();
for($i=0; $i<count($a); $i++) {
  foo($r, $a, $b, $i);
}
print_r($r);

function foo(&$r, $a, $b, $i) {
  if($i == 0) {  
    $r[] = $a[$i];
    $r[] = $b[$i];
    return;
  }
  foreach($r as $v) {
    if(strlen($v) == $i) {
      $r[] = $v . $a[$i];
      $r[] = $v . $b[$i];
    }
  }
}