为了账号安全,请及时绑定邮箱和手机立即绑定

perl 两个数组去重复。

perl 两个数组去重复。

繁花如伊 2019-04-12 10:06:04
@a =(1,2,3,4,5,6,7);@b =(1,3,5);用perl 求 @a 去掉@b中元素中的数组。
查看完整描述

2 回答

?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

两种方法,

1:要是ab按照顺序排的话

my ($i, $j) = (0, 0);

AA: while ($i <= $#a)

{

while ($b[$j] < $a[$i])

{

$j++;

last AA if ($j > $#b);

}

if ($b[$j] == $a[$i]){

print "delete $a[$i]\n";

splice(@a, $i, 1);

}

else

{

$i++;

}

}

print "@a";

2:要是不按照顺序可以用hash

for (@b){$b{$_} = 1;}

$i = 0;

while ($i <= $#a)

{

if ($b{$a[$i]}){

print "delete $a[$i]\n";

splice(@a, $i, 1);

}

else

{

$i++;

}

}

print "@a";

 

 


查看完整回答
反对 回复 2019-04-13
?
元芳怎么了

TA贡献1798条经验 获得超7个赞


1

2

3

4

5

6

7

8

9

10

11

12

13

use strict;

my %hash; 

my @a =(1,2,3,4,5,6,7); 

my @b =(1,3,5);

foreach my $ip  (@b) 

{

 $hash{$ip} = 1

}

for(my $i = 0; $i < @a; $i++) 

{

 delete $a[$i] if($hash{$a[$i]} == 1) ;

}

print "@a\n";

 

 

 

查看完整回答
反对 回复 2019-04-13
  • 2 回答
  • 0 关注
  • 675 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信