Perl里一個數組@A[0] 'hvacmall.o' [1] 'idlemopn.o' [2] 'idlemcnd.o' [3] 'idlemrpm.o' [4] 'CAL_HVAC' 另一數組@B[0] 'FF' [1] 'idlemopn' [2] 'hvacmall.o' [3] 'pageff_const' [4] 'SW_NAME' [5] 'SHARED_CONST' [6] 'UNPAGE_CODE' [7] 'CAL_HVAC' [8] 'idlemcnd' 這樣如何能判斷A是B的子集, 謝謝了
3 回答

慕慕森
TA貢獻1856條經驗 獲得超17個贊
my $flag=0;
for(my $i=0;$i<@A;$i++){
for(my $j=0;$j<@B;$j++){
if($B[j] eq $A[i]){
$flag++;
last;
}
}
}
if($flag==@A){
print "\@A is part of \@B";
}
其實就是同時遍歷A和B數組,如果A數組中的值在B數組中存在,則計數加1,當全部遍歷完成之后,則$flag的數表示A數組中在B數組里面存在的個數。當存在個數和數組A中元素個數相同時,則說明A數組為B數組的子集。其中last是防止A數組中某一個元素在B數組中存在兩次時錯誤多加一次。
- 3 回答
- 0 關注
- 767 瀏覽
添加回答
舉報
0/150
提交
取消