[Buổi 21][Xử lý chuỗi][HW] Bài 2: Đếm từ khác nhau
Đếm từ khác nhau
Bối cảnh
Một hệ thống tìm kiếm muốn biết trong một dòng có bao nhiêu từ khác nhau, không phân biệt chữ hoa/thường. Dữ liệu được tách theo whitespace; sau đó mỗi token được chuyển về lowercase trước khi đưa vào set. set phù hợp vì chỉ cần membership/unique, không cần lưu frequency.
Homework Easy ở B21 nhấn mạnh pipeline nhiều bước nhưng vẫn đơn giản: đọc dòng → tokenize → normalize token → insert set → lấy size(). Nếu normalize sau khi insert, A và a sẽ bị coi là hai key khác nhau, nên thứ tự các bước là một phần của correctness.
Yêu cầu
- Tokenize.
- Lowercase.
- Insert vào set.
- In size của set.
Input
Một dòng.
Output
Một số nguyên.
Ràng buộc
0 ≤ |line| ≤ 3000.
Ví dụ 1
Input
A a B b a
Output
2
Giải thích
Các token A a B b a sau lowercase trở thành a a b b a. Set chỉ giữ hai key a và b, nên số từ khác nhau bằng 2 và output là 2.
Ví dụ 2
Input
one two three
Output
3
Giải thích
Dòng có ba token one, two, three. Lowercase không thay đổi chúng và mỗi token được insert vào set đúng một lần. Vì không token nào trùng nhau, set cuối có ba key khác nhau. size() vì thế trả 3 và output là 3.
Thông tin học tập
- Module: M06
- Buổi: B21
- Loại bài: HOMEWORK
- Độ khó: Easy
- Concepts: stringstream, set, normalization
- Giới hạn kiến thức: B01-B21
- Time limit: 1 second(s)
- Memory limit: 256 MB
- Point: 100
Comments