Menu
CoddyTech

Matematika, Union HashSet

Termasuk bagian Logika dan Alur dalam perjalanan C# di Coddy. Pelajaran 62 dari 66.

Operasi Union menggabungkan dua set untuk membuat set baru yang berisi semua elemen dari kedua set tanpa duplikat.

Buat dua HashSet:

HashSet<int> set1 = new HashSet<int>() { 1, 2, 3 };
HashSet<int> set2 = new HashSet<int>() { 3, 4, 5 };

Gunakan method Union untuk menggabungkan set:

HashSet<int> unionSet = new HashSet<int>(set1);
unionSet.UnionWith(set2);

Setelah menjalankan kode di atas, unionSet berisi:

[1, 2, 3, 4, 5]

Perhatikan bahwa elemen 3 hanya muncul sekali dalam hasil, karena HashSet tidak mengizinkan duplikat.

challenge icon

Tantangan

Mudah

Buat method bernama UnionSets yang menerima dua HashSet berisi bilangan bulat sebagai parameter dan mengembalikan HashSet baru yang berisi gabungan kedua set.

Pembacaan input dan pencetakan output sudah ditangani untukmu: fokuslah pada implementasi isi method UnionSets.

Coba sendiri

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;

class Program
{
    public static HashSet<int> UnionSets(HashSet<int> set1, HashSet<int> set2)
    {
        // Tulis kodemu di sini
        return null;
    }
    
    static void Main(string[] args)
    {
        // Baca baris pertama untuk memeriksa format set pertama
        string line1 = Console.ReadLine();
        HashSet<int> set1 = new HashSet<int>();
        
        // Periksa apakah set pertama berformat array JSON
        if (line1 != null && line1.StartsWith("[") && line1.EndsWith("]"))
        {
            try
            {
                // Ambil isi di antara tanda kurung siku
                string arrayContent = line1.Substring(1, line1.Length - 2);
                
                // Coba uraikan isi array JSON
                string[] values = Regex.Split(arrayContent, @",\s*");
                foreach (string value in values)
                {
                    // Hapus tanda kutip jika ada
                    string cleanValue = value.Trim();
                    if (cleanValue.StartsWith("\"") && cleanValue.EndsWith("\""))
                    {
                        cleanValue = cleanValue.Substring(1, cleanValue.Length - 2);
                    }
                    
                    // Uraikan sebagai bilangan bulat dan tambahkan ke set
                    if (int.TryParse(cleanValue, out int num))
                    {
                        set1.Add(num);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error parsing first set: {ex.Message}");
                return;
            }
        }
        else
        {
            // Proses input set pertama yang dipisahkan spasi
            string[] input1 = line1.Split(' ');
            foreach (string num in input1)
            {
                if (int.TryParse(num, out int parsedNum))
                {
                    set1.Add(parsedNum);
                }
            }
        }
        
        // Baca baris kedua untuk memeriksa format set kedua
        string line2 = Console.ReadLine();
        HashSet<int> set2 = new HashSet<int>();
        
        // Periksa apakah set kedua berformat array JSON
        if (line2 != null && line2.StartsWith("[") && line2.EndsWith("]"))
        {
            try
            {
                // Ambil isi di antara tanda kurung siku
                string arrayContent = line2.Substring(1, line2.Length - 2);
                
                // Coba uraikan isi array JSON
                string[] values = Regex.Split(arrayContent, @",\s*");
                foreach (string value in values)
                {
                    // Hapus tanda kutip jika ada
                    string cleanValue = value.Trim();
                    if (cleanValue.StartsWith("\"") && cleanValue.EndsWith("\""))
                    {
                        cleanValue = cleanValue.Substring(1, cleanValue.Length - 2);
                    }
                    
                    // Uraikan sebagai bilangan bulat dan tambahkan ke set
                    if (int.TryParse(cleanValue, out int num))
                    {
                        set2.Add(num);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error parsing second set: {ex.Message}");
                return;
            }
        }
        else
        {
            // Proses input set kedua yang dipisahkan spasi
            string[] input2 = line2.Split(' ');
            foreach (string num in input2)
            {
                if (int.TryParse(num, out int parsedNum))
                {
                    set2.Add(parsedNum);
                }
            }
        }
        
        // Dapatkan gabungan set dan cetak hasilnya
        HashSet<int> unionSet = UnionSets(set1, set2);
        Console.WriteLine(string.Join(" ", unionSet.OrderBy(x => x)));
    }
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler C# online