Mô tả
Làm việc tại Trung tâm Công nghệ Thông tin tỉnh Quảng Nam, bạn được giao cải tiến hệ thống kiểm duyệt nội dung tự động của Cổng thông tin điện tử. Có rất nhiều bài viết được gửi lên mỗi ngày, và một phần mềm mới đã được xây dựng để trích xuất sẵn danh sách các thẻ HTML theo đúng thứ tự xuất hiện trong bài viết.
Nhiệm vụ của bạn là viết một hàm kiểm tra xem danh sách thẻ này có cấu trúc lồng nhau hợp lệ hay không. Hệ thống CMS của tỉnh hiện chỉ hỗ trợ ba loại thẻ cơ bản: <div>, <span> và <b>.
Một cấu trúc HTML được xem là hợp lệ khi:
- Các thẻ đóng và mở phải theo nguyên tắc LIFO (Last In, First Out): thẻ nào mở sau cùng thì phải đóng đầu tiên.
- Một thẻ đóng (ví dụ
</div>) phải khớp chính xác với thẻ mở cùng loại gần nhất chưa được đóng (<div>). - Khi kết thúc duyệt, không được phép còn sót lại bất kỳ thẻ nào chưa đóng.
Dữ liệu đầu vào là một danh sách (mảng) các chuỗi. Mỗi chuỗi là một thẻ HTML (đã được chuẩn hóa ở dạng chữ thường, ví dụ <div>, </span>, <b>). Bạn không cần phải xử lý văn bản HTML thô, chỉ cần làm việc với danh sách thẻ này.
Đầu vào
- Một mảng
tagsgồmnchuỗi. Mỗi chuỗi là một trong sáu giá trị:<div>,</div>,<span>,</span>,<b>,</b>.
Đầu ra
- Trả về
truenếu danh sách thẻ HTML lồng nhau hợp lệ. - Trả về
falsenếu ngược lại.