zoukankan      html  css  js  c++  java
  • grep和map计算两个集合交集、并集、补集

    #!/usr/bin/perl
    use strict;

    #######################################
    # 用grep 和map 获取两个列表的交集并集、补集
    #######################################

    my @a=("a","b","c","d","e");
    my @b=("b","g","f","e");
    print "列表a数据: @a ";
    print "列表b数据: @b ";

    my %a = map{$_ => 1} @a;
    my %b = map{$_ => 1} @b;
    my @c = map{$_ => 1} @a;     # => 操作符起到了hash赋值的作用

    # @a @b 交集
    my @inter = grep {$a{$_}} @b;    # 求交集
    print "交集:@inter ";

    # @a,@b 并集
    my %merge = map {$_ => 1} @a,@b;       # 求并集
    my @merge = keys (%merge);

    print "并集:@merge ";

    # @a,@b的补集@ca,@cb,即@a和@b相对于@merge的补集

    my @ca = grep {!$a{$_}} @merge;
    my @cb = grep {!$b{$_}} @merge;
    print "@a的补集:@ca ";
    print "@b的补集:@cb ";

  • 相关阅读:
    虚树
    最小树形图
    分块
    斜率优化
    单调队列优化DP
    树套树
    2-SAT
    莫队
    单调队列
    单调栈
  • 原文地址:https://www.cnblogs.com/blueicely/p/3290769.html
Copyright © 2011-2022 走看看