亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 780 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號