題目連結:
題目大意:
輸入有多筆測試資料,每筆佔兩列。兩列皆給定不定量的整數(最多 100 個,可能重複且可能一個數字都沒有(空白列)),代表兩個整數集合 A 、 B 的內容。
試問這兩個集合之關係:
如果 A 跟 B 是同一個集合,則輸出「A equals B」;
如果 A 是 B 的子集合,則輸出「A is a proper subset of B」;
如果 B 是 A 的子集合「B is a proper subset of A」;
如果 A 跟 B 沒有任何交集,則輸出「A and B are disjoint」;
如果 A 跟 B 有部分交集,則輸出「I'm confused!」。
範例輸入:
55 27
55 27
9 24 1995
9 24
1 2 3
1 2 3 4
1 2 3
4 5 6
1 2
2 3
範例輸出:
A equals B
B is a proper subset of A
A is a proper subset of B
A and B are disjoint
I'm confused!
解題思維:
可以利用類似
這題的方式求得兩者都有出現的元素(當然,也可以使用內建的函式庫之函式),將這些元素形成一個新的集合 S。
然後看重複元素集合 S 與 A 、 B 的關係。如果 S = A = B ,則就是集合都相同(所以也可以先判斷 A 是否等於 B,不用去算 S),所以輸出「A equals B」;
若否,如果 S 為空集合且 A 和 B 不為空集合,則代表 A 和 B 沒有交集,則輸出「A and B are disjoint」;
若否,如果 S = A ,則 A 是 B 的子集合,輸出「A is a proper subset of B」;
若否,如果 S = B ,則 B 是 A 的子集合,輸出「B is a proper subset of A」;
以上皆非,則代表 A 和 B 有部分的交集,輸出「I'm confused!」。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。