Hướng dẫn giải của HSG THPT Thanh Hóa 2021 - Soạn Văn Bản


Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.

Ta sử dụng hàm Getline() của C++ để đọc xâu trên một dòng.

Sau đó, để tiện lợi xử lí, ta tách xâu nhận được thành ~n~ xâu con (tương ứng với ~n~ từ của văn bản).

Do hai xâu đều có chung số lượng từ, ta sẽ xét lần lượt từng cặp từ tương ứng của hai xâu để xem nó có bị gõ sai ở lần đầu tiên hay không.

Để tạo một hàm kiểm tra xem xâu ~a~ nếu không bị kẹt phím thì có thể là xâu ~b~ hay không, ta có thể đặt một con trỏ ở xâu ~b~ (gọi là ~t~) và leo dần ở xâu ~a~ gọi là ~i~, rồi xét từng trường hợp:

  • Nếu ~t~ đã vượt quá độ lớn của xâu ~b~, trả về ~false~.

  • Nếu ~a[i] == b[t]~ thì ta tăng ~t~ lên.

  • Ngược lại, nếu ~a[i] \neq a[i-1]~ thì trả về ~true~.

  • Sau khi duyệt xong toàn bộ ~i~, nếu ~t =~ độ dài của ~b~ thì ta trả về ~true~, ngược lại về ~false~.


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.