给定两个字符串数组,A 和 B。
B 包含 A 中的每个元素,并且有一个附加成员,例如:
A = ['dog', 'cat', 'monkey]
B = ['cat', 'rat', 'dog', 'monkey']
我需要编写一个函数来使用 O(n)
查找 B 中的额外字符串。请帮忙!
更新:我知道使用 PHP 内置函数 array_diff() 可以实现差异。
您正在寻找内置函数array_diff
:
$A = array('dog', 'cat', 'monkey');
$B = array('cat', 'rat', 'dog', 'monkey');
$difference = array_diff($B, $A);
在这里测试
官方文档
希望对您有所帮助
$A = array('dog', 'cat', 'monkey');
$B = array('cat', 'rat', 'dog', 'monkey');
function arrayDiff($A, $B) {
$out = array();
foreach($B as $b) $out[$b] = 1;
foreach($A as $a) unset($out[$a]);
return array_keys($out);
}
print_r(arrayDiff($A, $B));
如果您不想使用array_keys()
更改功能,如下所示
function arrayDiff($A, $B) {
$res = $out = array();
foreach($A as $a) $out[$a] = 1;
foreach($B as $b) if(!isset($out[$b])) $res[] = $b;
return $res;
}