Menu
CoddyTech

Tạo tập hợp

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

Set là một tập hợp không có thứ tự gồm các giá trị duy nhất. Mọi phần tử đều có cùng kiểu dữ liệu, không cho phép phần tử trùng lặp và thứ tự lặp không thể dự đoán.

var colors: Set<String> = ["red", "green", "blue", "red"]
print(colors.count)              // 3 (bỏ giá trị "red" bị trùng)

Chú thích kiểu Set<String> là bắt buộc trong dạng literal vì nếu đứng riêng, ["a", "b"] sẽ được suy luận là một Array.

Ba thao tác cốt lõi: contains, insert và remove. Hai thao tác sau trả về thông tin cho biết thay đổi có ý nghĩa hay không.

colors.insert("yellow")         // thêm phần tử này
colors.insert("red")            // đã có, nên không thay đổi gì
colors.contains("green")        // true
colors.remove("blue")           // trả về "blue" hoặc nil nếu không có

Tạo tập hợp (set) từ mảng (array) giúp loại bỏ phần tử trùng lặp chỉ trong một bước:

let unique = Set([1, 2, 2, 3, 3, 3])
// 3 phần tử, thứ tự chính xác có thể thay đổi
challenge icon

Thử thách

Người mới

Đọc một dòng đầu vào: danh sách từ được phân tách bằng dấu phẩy (có thể có từ trùng lặp).

In ra ba dòng:

  1. Số lượng từ duy nhất (dùng Set)
  2. Các từ duy nhất được sắp xếp theo thứ tự bảng chữ cái và nối bằng ,
  3. true nếu đầu vào chứa từ swift, nếu không thì là false (dùng contains)

Với đầu vào swift,ruby,go,swift,go,rust, đầu ra là:

4
go,ruby,rust,swift
true

Tự làm thử

let words = readLine()!.components(separatedBy: ",")

// TODO: dùng Set để loại bỏ phần tử trùng lặp, in ra số lượng, nối các phần tử đã sắp xếp và kiểm tra xem có chứa chính xác đoạn văn bản trong hướng dẫn không
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