Club Activity Statistics System


Submit solution

Points: 10 (partial)
Time limit: 1.0s
Memory limit: 64M

Author:
Problem type

題目說明

請撰寫一個程式,先讀取五組字串,每個字串包含一到多個社團活動名稱,活動名稱之間以逗號分隔,活動名稱可能重複。
程式應該將每一組存入HashSet集合中,使得每一組都僅保留不重複的活動名稱。再將這些集合存入一個ArrayList陣列中。
程式另外讀取第六個字串,該字串包含一到多個可能重複的活動名稱,稱為所謂的停辦活動。程式將合併每個活動集合,形成一個單一個活動集合,合併過程必須忽略指定的停辦活動。
最後,輸出合併且篩選過的活動集合,輸出時會依照活動名稱排序(已實作在參考程式碼中的displaySortedActivities函數)。如果最後活動集合是空的,就僅輸出Empty字樣。
可以利用以下的參考程式碼作為基礎,做小幅度的修改(可能在20行以內),讓它可以滿足以上需求。
若修改正確,當程式獲得以下每一組範例輸入時,應該產生該範例的對應輸出結果。

參考程式碼

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Scanner;

public class ClubActivitySystem {
    public static void main(String[] args) {
        ArrayList<HashSet<String>> activityLists = new ArrayList<>();

        // Read input data, split by comma, and store in HashSet
        Scanner scanner = new Scanner(System.in);
        for (int i = 0; i < 5; i++) {
            HashSet<String> activities = new HashSet<>();
            for (String activity : scanner.nextLine().split(",")) {
                activities.add(activity);
            }
            activityLists.add(activities);
        }

        // Read the values to remove
        HashSet<String> cancelledActivities = new HashSet<>();
        // Missing code: Read the cancelled activities from input

        // Merge all sets but the one with the value to remove
        HashSet<String> finalActivities = combineActivitiesExceptCancelled(activityLists, cancelledActivities);

        // Show the merged set
        if (finalActivities.isEmpty()) {
            System.out.println("Empty");
        } else {
            displaySortedActivities(finalActivities);
        }
    }

    public static void displaySortedActivities(HashSet<String> activities) {
        ArrayList<String> sortedActivities = new ArrayList<>(activities);
        sortedActivities.sort(null);
        System.out.println(String.join(",", sortedActivities));
    }
}

輸入

先輸入五組字串,再輸入第六個字串代表停辦的活動(該字串包含一到多個可能重複的活動名稱)。

輸出

輸出合併且篩選過的活動集合。
如果最後活動集合是空的,就僅輸出Empty字樣。

範例輸入#1

chinese,english
math,science
chinese,history
english,geography,biology
science,chinese,english,math,geography
math,science

範例輸出#1

biology,chinese,english,geography,history

範例輸入#2

basketball,football
basketball,basketball
basketball,tennis
football,tennis,swimming
football,football,tennis,tennis
basketball,football,tennis,swimming,volleyball

範例輸出#2

Empty

Comments

There are no comments at the moment.