加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl – 确定数组是否是另一个数组的子集

发布时间:2020-12-16 06:23:10 所属栏目:大数据 来源:网络整理
导读:参见英文答案 Difference of Two Arrays Using Perl????????????????????????????????????10个 我有以下代码.如果没有附加的CPAN模块,可以简单地编写子集吗? my @possibleNames = ("adam","chelsea");my @actualNames = ("adam","chucky","chelsea");sub is
参见英文答案 > Difference of Two Arrays Using Perl????????????????????????????????????10个
我有以下代码.如果没有附加的CPAN模块,可以简单地编写子集吗?

my @possibleNames = ("adam","chelsea");
my @actualNames = ("adam","chucky","chelsea");

sub isSubset {
    my ($littleSet,$bigSet) = @_;
    foreach (@{$littleSet}) {
        return 0 unless ($_ ~~ @{$bigSet});
    }
    return 1;
}

printf("%sn",(isSubset(@possibleNames,@actualNames) ? "yes" : "no"));

解决方法

一种相当有效的方法是:

sub isSubset {
    my ($littleSet,$bigSet) = @_;
    my %hash;
    undef @hash{@$littleSet};  # add a hash key for each element of @$littleSet
    delete @hash{@$bigSet};    # remove all keys for elements of @$bigSet
    return !%hash;             # return false if any keys are left in the hash
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读