[Buổi 20][Chuỗi][HW] Bài 1: Chuẩn hóa khoảng trắng
Chuẩn hóa khoảng trắng
Bối cảnh
Một trường nhập liệu nhận câu văn có khoảng trắng không ổn định: có thể có nhiều space liên tiếp hoặc space ở đầu/cuối. Hệ thống cần tạo phiên bản chuẩn chỉ có đúng một space giữa hai nhóm ký tự và không có space thừa ở biên. Bài toán không yêu cầu tokenization bằng stringstream; mục tiêu là luyện duyệt std::string và xây chuỗi kết quả mới an toàn.
Homework Easy giúp người học thấy vì sao việc erase() liên tục trên chuỗi đang duyệt dễ sinh lỗi index. Cách đơn giản hơn là dùng một biến trạng thái để biết ký tự trước đó có phải khoảng trắng hay chưa, rồi append có kiểm soát vào output.
Yêu cầu
- Đọc cả dòng.
- Bỏ whitespace đầu/cuối.
- Giữa hai token chỉ giữ một space.
- In chuỗi kết quả.
Input
Một dòng văn bản.
Output
Một dòng đã chuẩn hóa.
Ràng buộc
0 ≤ |s| ≤ 1000.
Ví dụ 1
Input
a b c
Output
a b c
Giải thích
Chuỗi a b c có ba space giữa a và b. Khi duyệt, space đầu tiên được giữ như separator, hai space sau bị bỏ; giữa b và c đã có một space nên giữ nguyên. Không có space biên, kết quả là a b c.
Ví dụ 2
Input
Output
Giải thích
Input là chuỗi rỗng nên không có ký tự nào để append. Output cũng là chuỗi rỗng; đây là case biên kiểm tra code không truy cập s[0] khi size()==0.
Thông tin học tập
- Module: M06
- Buổi: B20
- Loại bài: HOMEWORK
- Độ khó: Easy
- Concepts: string traversal, whitespace normalization
- Giới hạn kiến thức: B01-B20
- Time limit: 1 second(s)
- Memory limit: 256 MB
- Point: 100
Comments