Bird
Raised Fist0
Swiftprogramming~10 mins

Set algebra (union, intersection, difference) in Swift - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Set algebra (union, intersection, difference)
Start with two sets A and B
↓
Choose operation
↓
Union
↓
Combine all
↓
Result set
We start with two sets and pick an operation: union combines all elements, intersection finds common elements, and difference finds elements in the first set not in the second.
Execution Sample
Swift
let A: Set = [1, 2, 3, 4]
let B: Set = [3, 4, 5, 6]

let unionSet = A.union(B)
let intersectionSet = A.intersection(B)
let differenceSet = A.subtracting(B)
This code creates two sets A and B, then finds their union, intersection, and difference.
Execution Table
StepOperationSets InvolvedResultExplanation
1Define AA = {1, 2, 3, 4}{1, 2, 3, 4}Set A is created with elements 1,2,3,4
2Define BB = {3, 4, 5, 6}{3, 4, 5, 6}Set B is created with elements 3,4,5,6
3UnionA ∪ B{1, 2, 3, 4, 5, 6}All unique elements from A and B combined
4IntersectionA ∩ B{3, 4}Only elements common to both A and B
5DifferenceA - B{1, 2}Elements in A that are not in B
6End--All operations complete
💡 All set operations performed; execution ends.
Variable Tracker
VariableStartAfter UnionAfter IntersectionAfter DifferenceFinal
A{1, 2, 3, 4}{1, 2, 3, 4}{1, 2, 3, 4}{1, 2, 3, 4}{1, 2, 3, 4}
B{3, 4, 5, 6}{3, 4, 5, 6}{3, 4, 5, 6}{3, 4, 5, 6}{3, 4, 5, 6}
unionSet-{1, 2, 3, 4, 5, 6}{1, 2, 3, 4, 5, 6}{1, 2, 3, 4, 5, 6}{1, 2, 3, 4, 5, 6}
intersectionSet--{3, 4}{3, 4}{3, 4}
differenceSet---{1, 2}{1, 2}
Key Moments - 3 Insights
Why does the union set contain no duplicates even though 3 and 4 appear in both sets?
Because sets automatically store unique elements, the union combines all elements but keeps only one copy of duplicates, as shown in step 3 of the execution table.
Why is the difference set only {1, 2} and not including 3 or 4?
Difference means elements in A that are not in B. Since 3 and 4 are in both sets, they are excluded. This is clear in step 5 of the execution table.
Does the intersection set change the original sets A or B?
No, intersection creates a new set with common elements but does not modify A or B, as shown in the variable tracker where A and B remain unchanged.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table at step 4. What elements are in the intersection set?
A{1, 2}
B{3, 4}
C{5, 6}
D{1, 2, 3, 4, 5, 6}
💡 Hint
Check the 'Result' column at step 4 in the execution table.
At which step does the difference operation occur?
AStep 5
BStep 4
CStep 3
DStep 6
💡 Hint
Look for the row labeled 'Difference' in the 'Operation' column.
If set B was changed to {2, 3, 4}, what would be the difference set after step 5?
A{1, 2}
B{1, 2, 3}
C{1}
D{}
💡 Hint
Difference is elements in A not in B; check variable_tracker logic.
Concept Snapshot
Set algebra in Swift:
- union: A.union(B) combines all unique elements
- intersection: A.intersection(B) finds common elements
- difference: A.subtracting(B) finds elements in A not in B
Sets store unique values only
Operations return new sets, originals unchanged
Full Transcript
This visual execution shows how to perform set algebra operations in Swift. We start with two sets A and B. We then perform union to combine all unique elements, intersection to find common elements, and difference to find elements in A not in B. Each step is shown with the sets involved and the results. Variables are tracked to show no original sets change. Key moments clarify common confusions about duplicates, difference meaning, and immutability. The quiz tests understanding of the execution steps and results.

Practice

(1/5)
1. What does the union operation do when applied to two Swift sets?
easy
A. Combines all unique elements from both sets into one set.
B. Finds elements that are only in the first set.
C. Finds elements common to both sets.
D. Removes all elements from both sets.

Solution

  1. Step 1: Understand the union operation

    The union of two sets combines all unique elements from both sets without duplicates.
  2. Step 2: Compare with other set operations

    Intersection finds common elements, difference finds unique elements in one set, so union is the only one combining all unique elements.
  3. Final Answer:

    Combines all unique elements from both sets into one set. -> Option A
  4. Quick Check:

    union = all unique elements combined [OK]
Hint: Union means all unique items from both sets combined [OK]
Common Mistakes:
  • Confusing union with intersection
  • Thinking union removes elements
  • Mixing union with difference
2. Which of the following is the correct Swift syntax to find the intersection of two sets a and b?
easy
A. let result = a + b
B. let result = a.intersection(b)
C. let result = a.union(b)
D. let result = a - b

Solution

  1. Step 1: Recall Swift set intersection syntax

    In Swift, the method to find common elements is intersection(), called as a.intersection(b).
  2. Step 2: Check other options

    a + b is not valid syntax, a.union(b) finds all unique elements, and a - b finds difference, so only a.intersection(b) is correct.
  3. Final Answer:

    let result = a.intersection(b) -> Option B
  4. Quick Check:

    intersection uses .intersection() method [OK]
Hint: Use .intersection() method to find common elements [OK]
Common Mistakes:
  • Using + instead of .intersection()
  • Confusing union and intersection methods
  • Using subtraction for intersection
3. What is the output of the following Swift code?
let setA: Set<Int> = [1, 2, 3, 4]
let setB: Set<Int> = [3, 4, 5, 6]
let result = setA.subtracting(setB)
print(result.sorted())
medium
A. [5, 6]
B. [3, 4]
C. [1, 2]
D. [1, 2, 3, 4, 5, 6]

Solution

  1. Step 1: Understand subtracting operation

    setA.subtracting(setB) returns elements in setA that are NOT in setB. Here, setA is [1,2,3,4], setB is [3,4,5,6].
  2. Step 2: Calculate difference

    Elements 3 and 4 are in both sets, so they are removed. Remaining elements in setA are 1 and 2.
  3. Final Answer:

    [1, 2] -> Option C
  4. Quick Check:

    subtracting = elements only in first set [OK]
Hint: Subtracting removes elements found in second set from first [OK]
Common Mistakes:
  • Confusing subtracting with intersection
  • Expecting union instead of difference
  • Not sorting output before printing
4. The following Swift code is intended to find the union of two sets setX and setY. What is the error?
let setX: Set<String> = ["apple", "banana"]
let setY: Set<String> = ["banana", "cherry"]
let combined = setX.union setY
print(combined)
medium
A. union cannot be used with string sets.
B. Sets must be arrays to use union.
C. The print statement is incorrect.
D. Missing parentheses after union method call.

Solution

  1. Step 1: Check method call syntax

    In Swift, methods require parentheses even if they take parameters. The code uses setX.union setY without parentheses.
  2. Step 2: Correct syntax for union

    The correct call is setX.union(setY). Other options are incorrect because union works on sets of strings and print is valid.
  3. Final Answer:

    Missing parentheses after union method call. -> Option D
  4. Quick Check:

    Method calls need parentheses [OK]
Hint: Always use parentheses when calling methods [OK]
Common Mistakes:
  • Omitting parentheses on method calls
  • Thinking union only works on numbers
  • Misunderstanding print syntax
5. Given two sets of integers:
let set1: Set<Int> = [2, 4, 6, 8, 10]
let set2: Set<Int> = [1, 2, 3, 4, 5]
Write Swift code to find elements that are in either set but NOT in both (symmetric difference). What is the correct way to do this?
hard
A. All of the above
B. let result = set1.symmetricDifference(set2)
C. let result = set1.subtracting(set2).union(set2.subtracting(set1))
D. let result = set1.union(set2).subtracting(set1.intersection(set2))

Solution

  1. Step 1: Understand symmetric difference

    Symmetric difference means elements in either set but not in both.
  2. Step 2: Analyze each option

    let result = set1.symmetricDifference(set2) uses built-in symmetricDifference() method. let result = set1.union(set2).subtracting(set1.intersection(set2)) finds union then removes intersection, which equals symmetric difference. let result = set1.subtracting(set2).union(set2.subtracting(set1)) finds difference both ways then unions them, also symmetric difference.
  3. Step 3: Confirm all options produce same result

    All three approaches correctly compute symmetric difference.
  4. Final Answer:

    All of the above -> Option A
  5. Quick Check:

    Multiple ways to get symmetric difference [OK]
Hint: Symmetric difference = union minus intersection or use built-in method [OK]
Common Mistakes:
  • Using only union or intersection alone
  • Confusing difference with symmetric difference
  • Not combining differences both ways
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard