Bird
Raised Fist0
Swiftprogramming~10 mins

Set algebra (union, intersection, difference) in Swift - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to find the union of two sets.

Swift
let setA: Set<Int> = [1, 2, 3]
let setB: Set<Int> = [3, 4, 5]
let unionSet = setA.[1](setB)
print(unionSet.sorted())
Drag options to blanks, or click blank then click option'
Aunion
B-
Cintersect
D+
Attempts:
3 left
💡 Hint
Common Mistakes
Using '+' operator which is not defined for sets in Swift.
Using 'intersect' which finds common elements.
2fill in blank
medium

Complete the code to find the intersection of two sets.

Swift
let setX: Set<String> = ["apple", "banana", "cherry"]
let setY: Set<String> = ["banana", "date", "fig"]
let commonFruits = setX.[1](setY)
print(commonFruits.sorted())
Drag options to blanks, or click blank then click option'
Aintersect
Bunion
Cintersection
Dsubtract
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'union' which combines all elements.
Using 'subtract' which removes elements.
3fill in blank
hard

Fix the error in the code to find the difference between two sets.

Swift
let set1: Set<Int> = [10, 20, 30, 40]
let set2: Set<Int> = [30, 40, 50]
let diffSet = set1.[1](set2)
print(diffSet.sorted())
Drag options to blanks, or click blank then click option'
Asubtract
Bdifference
Csubtracting
Ddiff
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'subtract' which is a mutating method, not returning a new set.
Using incorrect method names like 'diff'.
4fill in blank
hard

Fill both blanks to create a set of fruits that are in setA but not in setB.

Swift
let setA: Set<String> = ["orange", "apple", "banana"]
let setB: Set<String> = ["banana", "kiwi"]
let result = setA.[1](setB)
print(result.[2]())
Drag options to blanks, or click blank then click option'
Asubtracting
Bsorted
Cdifference
DsortedDescending
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'difference' which is not a valid method.
Using 'sortedDescending' which sorts in reverse order.
5fill in blank
hard

Fill all three blanks to create a dictionary with fruit names as keys (uppercase) and their counts as values, only for fruits with count greater than 1.

Swift
let fruits = ["apple", "banana", "apple", "cherry", "banana", "banana"]
let counts = Dictionary(grouping: fruits, by: [1]).mapValues { $0.count }
let filtered = counts.filter { $0.value [2] 1 }
let result = filtered.mapKeys { [3] }
print(result)
Drag options to blanks, or click blank then click option'
A{ $0 }
B>
C{ $0.uppercased() }
D{ $0.lowercased() }
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong grouping key.
Using wrong comparison operator.
Not converting keys to uppercase.

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