[Buổi 22][Củng cố bộ nhớ & chuỗi][WS] Bài 1: Student Data Cleaner


LÀM BÀI

Points: 100
Time limit: 2.0s
Memory limit: 256M

Author:
Problem types
Allowed languages
C++

Student Data Cleaner

Bối cảnh

Mỗi record sinh viên có format name|id. Số record chỉ biết runtime và bản core phải dùng mảng động string.

Bạn cần đọc đúng n dòng, chuẩn hóa, validate và báo cáo số record hợp lệ.

Yêu cầu

  1. Đọc n rồi cấp phát string* records = new string[n].
  2. Xử lý newline và getline n record.
  3. Với mỗi record, tìm |; normalize name và id.
  4. Record hợp lệ khi có delimiter, name/id sau normalize không rỗng và id không chứa whitespace.
  5. Với record hợp lệ, name chuyển Title Case, id uppercase; in name|ID.
  6. Sau các record, in VALID x INVALID y.
  7. delete[] records và đặt nullptr.

Yêu cầu tổ chức code

Bản core bắt buộc dùng new string[n]delete[].

Online Judge chủ yếu chấm output. Giảng viên có thể review thêm cấu trúc code để xác nhận học viên luyện đúng kỹ năng của buổi.

Input

Dòng 1 n; tiếp theo n dòng raw record.

Output

Các record hợp lệ theo thứ tự, rồi dòng thống kê cuối.

Ràng buộc

0 ≤ n ≤ 1000, tổng độ dài ≤100000, ASCII.

Ví dụ 1

Input

4
 nGUYEN  van an | k62-01
Le Thi B|TNUT02
badrecord
 | X

Output

Nguyen Van An|K62-01
Le Thi B|TNUT02
VALID 2 INVALID 2

Giải thích

Ba? Với dữ liệu này hai record đầu hợp lệ, badrecord| X không hợp lệ; báo cáo VALID 2 INVALID 2.

Ví dụ 2

Input

0

Output

VALID 0 INVALID 0

Giải thích

Không có record nên chỉ in VALID 0 INVALID 0.

Thông tin học tập

  • Module: M06
  • Buổi: B22
  • Loại bài: WORKSHOP
  • Độ khó: Medium
  • Concepts: dynamic string arrays, getline, normalization, validation, lifetime, vector refactor concept
  • Giới hạn kiến thức: B01-B22
  • Time limit: 2 second(s)
  • Memory limit: 256 MB
  • Point: 100

Comments

There are no comments at the moment.

Zalo