AI Empire Academy
CHUYÊN ĐỀ C++ THỰC CHIẾN

Bài tập Xâu ký tự (String) & Xử lý văn bản trong C++

Luyện tập các phương thức của lớp std::string và các thuật toán so khớp mẫu kinh điển giúp giải quyết các bài toán chuỗi lớn với độ phức tạp tuyến tính O(N).

27

bài tập có chấm code

Bài tập theo chuyên đề, có đề bài, ví dụ và starter code riêng.

14

cơ bản

Củng cố nền tảng và làm quen với kỹ thuật cốt lõi.

3

trung bình

Kết hợp nhiều bước suy luận để vận dụng kiến thức.

10

nâng cao

Thử thách tối ưu, cấu trúc dữ liệu và thuật toán chuyên sâu.

Lộ trình thực hành đề xuất

Bước 1

String STL cơ bản

Đọc xâu với getline, nối xâu, so sánh và các phương thức substr, find, size.

Bước 2

Bảng đếm tần suất

Dùng mảng int count[256] để đếm ký tự trong thời gian O(N) và bộ nhớ O(1).

Bước 3

Xâu đối xứng & Biến đổi

Kiểm tra palindrome, nén xâu RLE và đảo ngược các từ trong câu.

Bước 4

Thuật toán Rolling Hash

So khớp chuỗi con và tìm kiếm xâu con lặp lại dài nhất trong thời gian kỳ vọng O(N).

Lỗi thường gặp & Cách phòng tránh

•

Dùng cin >> s thay vì getline(cin, s) khi chuỗi đầu vào có chứa khoảng trắng.

•

Trôi lệnh khi dùng getline ngay sau khi đọc số bằng cin (quên cin.ignore()).

Danh sách bài tập thực hành (27 bài)

Trong mỗi mức độ, bài tập được xếp từ dễ nhất đến khó nhất — hãy đi theo số bước.

Cơ bản 14 bài

Khởi động

Nhập xuất, biến, rẽ nhánh và các bước suy luận đơn giản.

cpp-250Bước 1Cơ bản

Đếm số từ trong câu

Đếm từ là bước đầu của phân tích văn bản và kiểm tra giới hạn nội dung. Văn bản thật thường có nhiều khoảng trắng liên tiếp và khoảng trắng ở hai đầu, nên cách tách từ phải chịu đư…

cpp-251Bước 2Cơ bản

Từ dài nhất trong câu

Tìm cực trị kèm quy tắc hoà giải rất phổ biến: khi nhiều từ cùng độ dài, phải chọn từ xuất hiện trước. Đây là ví dụ điển hình cho việc chọn đúng toán tử so sánh.

cpp-270Bước 3Cơ bản

Kiểm tra hai chuỗi đảo chữ

Hai chuỗi là đảo chữ khi chúng có cùng đa tập ký tự — giống nhau về ký tự và số lần xuất hiện, chỉ khác thứ tự. Mảng đếm 26 phần tử cho lời giải O(L).

cpp-269Bước 4Cơ bản

Mã hoá Caesar

Mã Caesar dịch mỗi chữ cái đi k vị trí trong bảng chữ cái và quay vòng khi vượt z. Đây là bài nhập môn số học modulo trên ký tự và là bước đệm hiểu mã thay thế, ROT13.

Làm quen

Vòng lặp, mảng một chiều, chuỗi và hàm ở mức cơ bản.

Trung bình 3 bài

cpp-005Bước 1Trung bình

Chuẩn hóa họ tên và tạo email học viên

Cổng thông tin tuyển sinh trực tuyến của AI Empire Academy tiếp nhận hồ sơ học viên với họ tên viết dưới dạng xâu ký tự thô (gồm các chữ cái tiếng Anh/tiếng Việt không dấu a-z, A-Z…

Nâng cao 10 bài

Thử thách

Thuật toán chuyên sâu: quy hoạch động, đồ thị, cây.

Chuyên sâu

Cấu trúc dữ liệu nâng cao và nhiều bước chứng minh.