Matematika, Irisan HashSet
Termasuk bagian Logika dan Alur dalam perjalanan C# di Coddy. Pelajaran 63 dari 66.
Irisan dari dua set hanya berisi elemen yang muncul di kedua set.
Buat dua HashSet:
HashSet<int> set1 = new HashSet<int>() { 1, 2, 3, 4, 5 };
HashSet<int> set2 = new HashSet<int>() { 3, 4, 5, 6, 7 };Untuk menemukan irisan, gunakan method IntersectWith:
set1.IntersectWith(set2);Setelah menjalankan kode ini, set1 akan berisi:
{ 3, 4, 5 }method IntersectWith mengubah set yang memanggilnya, dengan hanya mempertahankan elemen yang ada di kedua set.
Untuk membuat set baru yang berisi irisan tanpa mengubah set asli, kamu bisa:
HashSet<int> intersection = new HashSet<int>(set1);
intersection.IntersectWith(set2);Tantangan
SedangBuat method bernama FindCommonElements yang menerima dua argumen:
- HashSet bilangan bulat (
set1) - HashSet bilangan bulat (
set2)
Method tersebut harus mengembalikan HashSet baru yang hanya berisi elemen yang muncul di kedua set (irisan).
Coba sendiri
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
class Program {
public static HashSet<int> FindCommonElements(HashSet<int> set1, HashSet<int> set2) {
// Tulis kodemu di sini
return null;
}
static void Main(string[] args) {
// Baca baris pertama untuk 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 yang dipisahkan spasi untuk set pertama
string[] input1 = line1.Split();
foreach (string s in input1) {
if (int.TryParse(s, out int num)) {
set1.Add(num);
}
}
}
// Baca baris kedua untuk 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 yang dipisahkan spasi untuk set kedua
string[] input2 = line2.Split();
foreach (string s in input2) {
if (int.TryParse(s, out int num)) {
set2.Add(num);
}
}
}
// Cari elemen yang sama
HashSet<int> common = FindCommonElements(set1, set2);
// Cetak hasil (sudah diurutkan)
Console.WriteLine(string.Join(" ", common.OrderBy(x => x)));
}
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1array Multidimensi
Dasar-Dasar array 2DMendeklarasikan dan Menginisialisasi array 2DMengakses Elemen array 2DPerulangan Bersarang dengan array 2Darray BergerigiOperasi Matriks UmumRangkuman: array Multidimensi4Teknik Alur Kontrol
Pengembalian DiniKlausa PenjagaPernyataan Lompatan (goto)Break dan ContinueMeratakan Percabangan Bersarang7Operator Logika Lanjutan
Evaluasi Hubung SingkatOperator Logika PercabanganPrioritas OperatorRingkasan Operator Lanjutan2Pengambilan Keputusan Tingkat Lanjut
Beberapa KondisiLogika Boolean yang KompleksPerbandingan If dan SwitchPernyataan Switch BersarangUlasan: Pengambilan Keputusan Tingkat Lanjut5Penanganan Exception
Dasar Try-CatchJenis ExceptionBeberapa Blok CatchBekerja dengan fileBlok FinallyUsing vs. Try-FinallyException KustomRingkasan: Penanganan error3Peningkatan Loop
Performa LoopIterasi yang KompleksSetiap Jenis LoopRefactoring LoopRangkuman: Loop yang Dioptimalkan6Penanganan Null
Dasar Referensi NullTipe Nilai NullablePola Pemeriksaan NullPemrograman DefensifRingkasan: Keamanan Null9HashMap Bagian 1
Apa itu HashMap?Deklarasikan HashMapPeriksa Apakah Kunci AdaMengakses NilaiMengubah dictionaryRingkasan HashMap12HashSet Bagian 2
Matematika, Union HashSetMatematika, Irisan HashSetMatematika, Selisih SetMatematika, Selisih SimetrisMelakukan Iterasi pada SetLatihan sendiri: Compiler C# online