Matematik - Simetrik Fark
Coddy'nin C# Journey'sinin Mantık & Akış bölümünün bir parçası. Ders 65 / 66.
İki kümenin simetrik farkı, kümelerin herhangi birinde ama kesişimlerinde olmayan öğeleri içerir (tam olarak bir kümede yer alan öğeler).
İki HashSet nesnesi oluşturun:
HashSet<int> set1 = new HashSet<int>() { 1, 2, 3, 4 };
HashSet<int> set2 = new HashSet<int>() { 3, 4, 5, 6 };Sonuç için yeni bir HashSet oluşturun:
HashSet<int> symmetricDifference = new HashSet<int>(set1);Simetrik farkı hesaplamak için SymmetricExceptWith yöntemini kullanın:
symmetricDifference.SymmetricExceptWith(set2);Yukarıdaki kodu çalıştırdıktan sonra, symmetricDifference kümesi şunları içerir:
{ 1, 2, 5, 6 }3 ve 4 elemanları her iki kümede de bulunduğu için simetrik farkta görünmezler.
Görev
Kolayİki bağımsız değişken alan FindSymmetricDifference adlı bir metot oluşturun:
- Tamsayılar içeren bir HashSet (
set1) - Tamsayılar içeren bir HashSet (
set2)
Metot, iki kümenin simetrik farkını içeren yeni bir HashSet<int> döndürmelidir. Programın geri kalanı (girdiyi okuma, sıralama ve sonuçları yazdırma) sizin için zaten sağlanmıştır.
Kendin dene
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
public static HashSet<int> FindSymmetricDifference(HashSet<int> set1, HashSet<int> set2)
{
// Kodunuzu buraya yazın
}
static void Main(string[] args)
{
string[] input1 = Console.ReadLine().Split(',');
string[] input2 = Console.ReadLine().Split(',');
HashSet<int> set1 = new HashSet<int>();
HashSet<int> set2 = new HashSet<int>();
foreach (string s in input1)
{
if (int.TryParse(s.Trim(), out int num))
{
set1.Add(num);
}
}
foreach (string s in input2)
{
if (int.TryParse(s.Trim(), out int num))
{
set2.Add(num);
}
}
HashSet<int> result = FindSymmetricDifference(set1, set2);
// Sonucu artan sırada yazdır
int[] orderedResult = result.OrderBy(x => x).ToArray();
foreach (int num in orderedResult)
{
Console.WriteLine(num);
}
}
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık & Akış bölümündeki tüm dersler
1Çok Boyutlu Diziler
2B Dizilere Giriş2B Tanımlama ve Başlatma2B Dizi Öğelerine Erişim2B Dizilerle İç İçe DöngülerDüzensiz DizilerYaygın Matris İşlemleriTekrar - Çok Boyutlu4Akış Denetimi Teknikleri
Erken DönüşlerKoruma KoşullarıAtlama İfadeleri (goto)Break ve Continueİç İçe Koşulları Düzleştirme7İleri Düzey Mantıksal Operatörler
Kısa Devre DeğerlendirmesiKoşullu Mantıksal OperatörlerOperatör ÖnceliğiÖzet - İleri Düzey Operatörler2İleri Düzey Karar Verme
Birden Çok KoşulKarmaşık Boolean MantığıIf ve Switch Karşılaştırmasıİç İçe Switch İfadeleriÖzet - İleri Düzey Kararlar5İstisna Yönetimi
Try-Catch Temelleriİstisna TürleriBirden Çok Catch BloğuDosyalarla ÇalışmaFinally BloğuUsing ve Try-Finally KarşılaştırmasıÖzel İstisnalarTekrar - Hata Yönetimi3Döngü İyileştirmeleri
Döngü PerformansıKarmaşık Yapılar Üzerinde İterasyonHer Döngü TürüDöngüleri Yeniden DüzenlemeÖzet - Optimize Edilmiş Döngüler6Null Yönetimi
Null Referanslarının TemelleriNullable Değer TürleriNull Kontrolü DesenleriSavunmacı ProgramlamaTekrar - Null Güvenliği9HashMap Bölüm 1
HashMap nedir?HashMap tanımlamaAnahtarın mevcut olup olmadığını kontrol etmeDeğerlere erişmeSözlükleri değiştirmeÖzet - HashMap12HashSet Bölüm 2
Matematik - HashSet'lerin BirleşimiMatematik - HashSet'in KesişimiMatematik - Küme FarkıMatematik - Simetrik FarkKümeler Üzerinde YinelemeKendi başına pratik yap: Online C# derleyicisi