Xử lý chuỗi
Mô tả
WindMist là trợ lý lập trình AI mã nguồn mở chạy ngay trong terminal, được nhóm kỹ sư tại KMS Technology phát triển nội bộ để tăng tốc gỡ lỗi và viết mã lệnh. Trước khi trình phân tích cú pháp của WindMist xử lý một dòng lệnh, hệ thống cần xác minh rằng các dấu ngoặc trong lệnh được ghép cặp đúng quy tắc.
Một chuỗi lệnh được xem là hợp lệ khi:
- Mỗi dấu ngoặc mở đều có đúng một dấu ngoặc đóng cùng loại tương ứng.
- Các cặp ngoặc không được cắt ngang lẫn nhau; dấu đóng phải khớp với dấu mở gần nhất chưa được đóng.
Các loại dấu ngoặc cần kiểm tra bao gồm: ngoặc tròn (), ngoặc vuông [] và ngoặc nhọn {}. Các ký tự khác trong chuỗi không ảnh hưởng đến kết quả kiểm tra.
Nhiệm vụ của bạn: cho trước một chuỗi lệnh, hãy xác định nó có hợp lệ theo quy tắc trên hay không.
Đầu vào
- Một chuỗi
sgồm các ký tự chữ cái, chữ số, khoảng trắng và dấu câu thông thường.
Đầu ra
- Trả về
truenếu chuỗi lệnh hợp lệ, ngược lại trả vềfalse.
Ràng buộc
- Độ dài chuỗi
snằm trong khoảng từ 0 đến 10^4 ký tự. - Chuỗi có thể chứa bất kỳ ký tự nào kể trên, hoặc không chứa dấu ngoặc nào.
Ví dụ
Ví dụ 1:
- Đầu vào:
s = "run(script, [opt])" - Đầu ra:
true - Giải thích: Ngoặc tròn mở trước, ngoặc vuông mở sau. Ngoặc vuông đóng trước khớp đúng với ngoặc vuông mở, sau đó ngoặc tròn đóng khớp đúng với ngoặc tròn mở. Thứ tự đóng mở hoàn toàn đúng.
** Ví dụ 2:**
- Đầu vào:
s = "check{data]" - Đầu ra:
false - Giải thích: Ngoặc nhọn mở nhưng lại được đóng bằng ngoặc vuông, sai loại nên chuỗi không hợp lệ.