Editorial for Xâu Ami
Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.
Submitting an official solution before solving the problem yourself is a bannable offence.
Submitting an official solution before solving the problem yourself is a bannable offence.
Đây là một bài toán gần giống với bài xác định xem một dãy ngoặc có đúng hay không.
Để giải quyết cả hai bài toán một cách tổng quát, ta có thể dùng một ngăn xếp (stack). Duyệt lần lượt các kí tự trừ trái sang phải, giả sử ta đang ở kí tự \(i\), có các trường hơp sau:
- Nếu ngăn xếp rỗng hoặc phần tử cuối (back) của ngăn xếp khác S[i], ta đẩy S[i] vào ngăn xếp.
- Nếu phần tử cuối của ngăn xếp trùng với S[i], ta đẩy phần tử cuối này ra khỏi ngăn xếp.
Nếu cuối cùng ngăn xếp rỗng thì xâu cần xét là một xâu đúng.
Độ phức tạp là \(O(n)\).
Comments