Đề xuất một giải pháp cho vấn đề leetcode này Cho một chuỗi chỉ chứa ba loại ký tự: '(', ')' và '*', hãy viết hàm kiểm tra xem chuỗi này có hợp lệ hay không. Chúng tôi xác định tính hợp lệ của một chuỗi theo các quy tắc sau:

Bất kỳ dấu ngoặc đơn bên trái nào '(' phải có dấu ngoặc đơn bên phải tương ứng ')'.
Mọi dấu ngoặc phải ')' phải có dấu ngoặc trái tương ứng '('.
Dấu ngoặc trái '(' phải đi trước dấu ngoặc phải tương ứng ')'.
'*' có thể được coi là dấu ngoặc đơn bên phải ')' hoặc dấu ngoặc đơn bên trái '(' hoặc một chuỗi trống.

Một chuỗi rỗng cũng hợp lệ.