Menu
Coddy logo textTech

Math - Symmetric Difference

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 metodunu 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.

challenge icon

Görev

Kolay

FindSymmetricDifference adında iki parametre alan 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ı (giriş okuma, sıralama ve sonuçları yazdırma) sizin için zaten sağlanmıştır.

Kopya kağıdı

İki kümenin simetrik farkı, ya bir kümede ya da diğerinde ama her ikisinde de olmayan elemanları içerir (kümelerin tam olarak birinde yer alan elemanlar).

Simetrik farkı bulmak için, bir kümeden yeni bir HashSet oluşturun ve SymmetricExceptWith() kullanın:

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

HashSet<int> symmetricDifference = new HashSet<int>(set1);
symmetricDifference.SymmetricExceptWith(set2);

Sonuç: { 1, 2, 5, 6 } (3 ve 4 elemanları her iki kümede de bulundukları için hariç tutulmuştur)

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);
        }
    }
}
quiz iconKendini test et

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