Math - Symmetric Difference
Teil des Abschnitts Logik & Ablauf der C#-Journey von Coddy — Lektion 65 von 66.
Die symmetrische Differenz zweier Mengen enthält Elemente, die in einer der Mengen, aber nicht in ihrer Schnittmenge sind (Elemente, die genau in einer der Mengen vorkommen).
Erstellen Sie zwei HashSet-Objekte:
HashSet<int> set1 = new HashSet<int>() { 1, 2, 3, 4 };
HashSet<int> set2 = new HashSet<int>() { 3, 4, 5, 6 };Erstellen Sie eine neue HashSet für das Ergebnis:
HashSet<int> symmetricDifference = new HashSet<int>(set1);Verwenden Sie die SymmetricExceptWith-Methode, um die symmetrische Differenz zu berechnen:
symmetricDifference.SymmetricExceptWith(set2);Nach der Ausführung des obigen Codes enthält die symmetricDifference-Menge:
{ 1, 2, 5, 6 }Die Elemente 3 und 4 sind in beiden Mengen, daher erscheinen sie nicht in der symmetrischen Differenz.
Aufgabe
EinfachErstellen Sie eine Methode mit dem Namen FindSymmetricDifference, die zwei Argumente annimmt:
- Ein
HashSetvon Ganzzahlen (set1) - Ein
HashSetvon Ganzzahlen (set2)
Die Methode sollte ein neues HashSet<int> zurückgeben, das die symmetrische Differenz der beiden Mengen enthält. Der Rest des Programms (Eingabe lesen, Sortieren und Ausgeben der Ergebnisse) ist bereits für Sie bereitgestellt.
Spickzettel
Die symmetrische Differenz von zwei Mengen enthält Elemente, die in genau einer der Mengen enthalten sind (in einer oder der anderen, aber nicht in beiden).
Um die symmetrische Differenz zu finden, erstellen Sie eine neue HashSet aus einer Menge und verwenden Sie SymmetricExceptWith():
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);Ergebnis: { 1, 2, 5, 6 } (Elemente 3 und 4 werden ausgeschlossen, weil sie in beiden Mengen vorkommen)
Probier es selbst
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
public static HashSet<int> FindSymmetricDifference(HashSet<int> set1, HashSet<int> set2)
{
// Schreibe deinen Code hier
}
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);
// Drucke das Ergebnis in aufsteigender Reihenfolge
int[] orderedResult = result.OrderBy(x => x).ToArray();
foreach (int num in orderedResult)
{
Console.WriteLine(num);
}
}
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Multi-dimensional Arrays
2D Arrays BasicsDeclaring and Initializing 2DAccessing 2D Array ElementsNested Loops with 2D ArraysJagged ArraysCommon Matrix OperationsRecap - Multi-dimensional4Flow Control Techniques
Early ReturnsGuard ClausesJump Statements (goto)Break and ContinueFlatten Nested Conditionals7Logical Operators Advanced
Short-Circuit EvaluationConditional Logical OperatorsOperator PrecedenceRecap - Advanced Operators2Advanced Decision Making
Multiple ConditionsComplex Boolean LogicIf vs. Switch ComparisonNested Switch StatementsRecap - Advanced Decisions5Exception Handling
Try-Catch BasicsException TypesMultiple Catch BlocksWorking with FilesFinally BlockUsing vs. Try-FinallyCustom ExceptionsRecap - Error Handling3Loop Enhancements
Loop PerformanceIterating ComplexEach Loop TypeRefactoring LoopsRecap - Optimized Loops6Null Handling
Null Reference BasicsNullable Value TypesNull Checking PatternsDefensive ProgrammingRecap - Null Safety9HashMap Part 1
What is a HashMap?Declare a HashMapCheck If Key ExistsAccessing ValuesModifying DictionariesRecap - HashMap12HashSet Part 2
Math - Union of HashSetsMath - Intersection of HashSetMath - Set DifferenceMath - Symmetric DifferenceIterating Over Sets