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.
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:
- 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) - 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,6Tự 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
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
1Chuỗi chuyên sâu
Đếm và chỉ sốChữ hoa, chữ thường và xóa khoảng trắngTìm kiếm trong chuỗiTách và nối chuỗiThay thế chuỗi conÔn tập: Kiểm tra tên người dùng4Tập hợp
Tạo tập hợpPhép hợp và phép giaoPhép trừ và hiệu đối xứngTập con và tập hợp conÔn tập: Bộ lọc thẻ7Dự án: Theo dõi thói quen
Tổng quan dự ánĐánh dấu hoàn thành10Dự án: bộ máy trắc nghiệm
Tổng quan dự ánĐặt câu hỏiTự luyện tập: Playground Swift