1

给定两个字符串数组,A 和 B。

B 包含 A 中的每个元素,并有一个附加成员,例如:

A = ['dog', 'cat', 'monkey]
B = ['cat', 'rat', 'dog', 'monkey']

我需要编写一个函数来使用O(n). 请帮忙!

更新:我知道可以使用 PHP 内置函数 array_diff() 来实现差异。

4

2 回答 2

1

您正在寻找内置功能array_diff

$A = array('dog', 'cat', 'monkey');
$B = array('cat', 'rat', 'dog', 'monkey');
$difference = array_diff($B, $A);

在这里测试

官方文档

于 2013-10-27T10:57:59.323 回答
1

我希望它可以帮助你

$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;
}
于 2013-10-27T12:01:10.993 回答