Menu
CoddyTech

Phép hợp và phép giao

Thuộc phần Logic và luồng thực thi trong hành trình Swift của Coddy. Bài học 19 trên 56.

Tập hợp phát huy tác dụng khi bạn cần kiểm tra một phần tử có thuộc một trong hai tập hợp hay không.

let a: Set = [1, 2, 3, 4]
let b: Set = [3, 4, 5, 6]

union trả về mọi phần tử từ cả hai phía:

a.union(b)              // {1, 2, 3, 4, 5, 6}

intersection chỉ trả về các phần tử xuất hiện trong cả hai tập hợp:

a.intersection(b)       // {3, 4}

Mỗi phương thức trả về một Set mới. Các tập hợp ban đầu vẫn không thay đổi. Thứ tự lặp qua kết quả không được đảm bảo, hãy sắp xếp trước khi in ra.

challenge icon

Thử thách

Dễ

Đọc hai dòng đầu vào. Mỗi dòng là một danh sách số nguyên được phân tách bằng dấu phẩy.

Xem chúng là các tập hợp a và b. In ra hai dòng:

  1. Phần giao, sắp xếp tăng dần, nối bằng , (hoặc một dòng trống nếu tập hợp rỗng)
  2. Phần hợp, sắp xếp tăng dần, nối bằng ,

Với đầu vào 1,2,3,4 ở dòng đầu tiên và 3,4,5,6 ở dòng thứ hai, đầu ra là:

3,4
1,2,3,4,5,6

Tự làm thử

let a = Set(readLine()!.components(separatedBy: ",").map { Int($0)! })
let b = Set(readLine()!.components(separatedBy: ",").map { Int($0)! })

// TODO: sắp xếp rồi nối các phần tử của tập giao, sắp xếp rồi nối các phần tử của tập hợp nhất
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Logic và luồng thực thi

Tự luyện tập: Playground Swift