Perl-求交集和并集(Nvidia2018笔试)

Posted wt-seu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Perl-求交集和并集(Nvidia2018笔试)相关的知识,希望对你有一定的参考价值。

1、原题

技术图片

 

 2、代码

@A = (5,6,7);  # 数组用@和圆括号,用$A[index]访问;哈希用%和圆括号,用
                             # $A{key}访问
@B = (6,7,8);

@intersection;
@union;

# 计算交集,依次取出A中元素,判断其是否与B中的某个元素相等
foreach $a (@A){
    for($i=0;$i<@B;$i++){   # @B的含义由上下文决定,此处表示其size
        if($B[$i] == $a){
            push(@intersection,$a);
        }
    }
}

print("intersection is:
");
foreach $item (@intersection){
    print("$item ");
}
print("
");

# 计算并集,先将A和B直接合并,接着依次判断A_B中的各个元素是否已经存在于
# 当前的union数组中,若没有则push进去
@A_B = (@A,@B);
for $item (@A_B){
    $item_in_current_union = 0;
    for($i=0;$i<@union;$i++){
        if($union[$i]==$item) {
                $item_in_current_union = 1;
        }
    }
    if($item_in_current_union == 0){ 
        push(@union,$item);
        $size = @union;                # union的大小动态改变
        print("union size is $size
");
    }
}

print("union is:
");
foreach $item (@union){
    print("$item ");
}
print("
");

3、输出

intersection is:
6 7
union size is 1
union size is 2
union size is 3
union size is 4
union is:
5 6 7 8

 

以上是关于Perl-求交集和并集(Nvidia2018笔试)的主要内容,如果未能解决你的问题,请参考以下文章

求两个list的交集和并集

java集合求差值和并集!

excel怎么做交集和并集?

java数组的交集和并集

js 对象数组的交集补集和并集

求一段python程序,定义一个函数,输入为两个list,return是两个list的交集和并集。 求高手解答