[Buổi 22][Củng cố bộ nhớ & chuỗi][HW] Bài 4: Kiểm thử hồi quy Raw Array và Vector


LÀM BÀI

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

Author:
Problem types
Allowed languages
C++

Kiểm thử hồi quy Raw Array và Vector

Bối cảnh

Một nhóm đang migrate code từ raw dynamic array sang vector<string>. Để bảo đảm hai phiên bản xử lý giống nhau, cùng n dòng input được lưu vào cả hai representation. Hai pipeline độc lập áp dụng cùng rule: normalize khoảng trắng và lowercase toàn bộ ký tự. Sau đó hệ thống so sánh từng phần tử và tính checksum là tổng độ dài của các dòng canonical.

Output MATCH checksum nếu hai kết quả giống nhau hoàn toàn; nếu khác, in MISMATCH firstIndex, nơi firstIndex là vị trí đầu tiên khác nhau. Trong bài chuẩn, nếu cả hai pipeline được viết đúng thì luôn MATCH; mục tiêu Homework Medium là tổ chức code thành hàm dùng chung hoặc hai implementation tương đương, hiểu lifetime của raw array và thấy lợi ích ownership tự động của vector.

Điểm quan trọng là hai representation phải thật sự tồn tại song song từ cùng dữ liệu gốc. Không được chỉ xử lý vector rồi copy kết quả sang raw ở cuối, vì như vậy bài không còn kiểm tra sự tương đương của hai cách quản lý bộ nhớ.

Yêu cầu

  1. Đọc n dòng.
  2. Lưu cùng input vào raw string*vector<string>.
  3. Normalize cả hai.
  4. So sánh và tính checksum.
  5. In MATCH/checksum hoặc MISMATCH/index; delete[] raw.

Input

Dòng 1 n; n dòng.

Output

MATCH checksum hoặc MISMATCH index.

Ràng buộc

0≤n≤2000, mỗi line ≤1000.

Ví dụ 1

Input

3
 A   B 
Hello
 x Y z

Output

MATCH 13

Giải thích

Cả raw array và vector nhận cùng ba dòng. Normalize tạo a b, hello, x y z ở cả hai representation. Không index nào khác nhau nên trạng thái MATCH. Checksum là độ dài 3+5+5 = 13, vì vậy output MATCH 13.

Ví dụ 2

Input

0

Output

MATCH 0

Giải thích

Với n=0, raw pointer được giữ null và vector có size 0. Hai vòng normalize/compare đều bỏ qua, vì vậy không thể xuất hiện mismatch; checksum cũng không nhận đóng góp nào và bằng 0. Cuối chương trình delete[] trên pointer null là an toàn, nên output là MATCH 0.

Thông tin học tập

  • Module: M06
  • Buổi: B22
  • Loại bài: HOMEWORK
  • Độ khó: Medium
  • Concepts: raw dynamic array, vector, shared string normalization, checksum, regression comparison
  • Giới hạn kiến thức: B01-B22
  • Time limit: 1 second(s)
  • Memory limit: 256 MB
  • Point: 100

Comments

There are no comments at the moment.

Zalo