Câu hỏi:
29/09/2024 80Cho biết cách trình bày cách để kiểm tra số dấu mở ngoặc và số dấu đóng ngoặc tương ứng trong chuỗi "(((){[]}))" có bằng nhau hay không.
Sách mới 2k7: Tổng ôn Toán, Lí, Hóa, Văn, Sử, Địa…. kỳ thi tốt nghiệp THPT Quốc gia 2025, đánh giá năng lực (chỉ từ 110k).
Quảng cáo
Trả lời:
Cách trình bày cách để kiểm tra số dấu mở ngoặc và số dấu đóng ngoặc tương ứng trong chuỗi "(((){[]}))" có bằng nhau hay không:
Một chuỗi có dấu ngoặc cân bằng khi mỗi dấu mở ngoặc được theo sau bởi một dấu đóng ngoặc tương ứng được đặt ở vị trí thích hợp và ngược lại. Ví dụ, các chuỗi sau "((({[]}))", "({})([])" có dấu ngoặc cân bằng và các chuỗi sau "((O)]}", "((()" có dấu ngoặc không cân bằng. Ngăn xếp có thể được sử dụng để kiểm tra các dấu ngoặc và đảm bảo tính hợp lệ của một biểu thức toán học hoặc lời gọi hàm trong ngôn ngữ lập trình. Em có thể dùng ngăn xếp để kiểm tra tính hợp lệ của chuỗi bằng cách duyệt qua từng kí tự, ở mỗi kí tự đang xét, em thực hiện như sau:
1. Nếu kí tự là dấu mở ngoặc ("(" hoặc "{" hoặc "I") thì thêm vào ngăn xếp với thao tác push.
2 Nếu kí tự là dấu đóng ngoặc (")" hoặc "}" hoặc "1") thì lấy ra kí tự ở đỉnh ngăn xếp với thao tác pop. Sau đó kiểm tra nếu kí tự được pop là dấu mở ngoặc tương ứng với dấu đóng ngoặc đang xét thì tiếp tục quá trình duyệt chuỗi, ngược lại thì trả về kết quả chuỗi có dấu ngoặc không cân bằng.
3. Bỏ qua nếu kí tự không phải là mở ngoặc hay đóng ngoặc.
Sau khi hoàn thành duyệt chuỗi, kiểm tra nếu ngăn xếp rỗng thì chuỗi có dấu ngoặc cân bằng. Ngược lại, nếu ngăn xếp không rỗng thì chuỗi có dấu ngoặc không cân bằng.
CÂU HỎI HOT CÙNG CHỦ ĐỀ
Câu 1:
Chuyển biểu thức dạng trung tố sang hậu tố
Yêu cầu: Cho biểu thức 2 * (4 + 3) - 5. Hãy viết chương trình để chuyển một biểu thức dạng trung tố sang biểu thức dạng hậu tố với giả sử toán hạng, toán tử trong chuỗi chỉ gồm 1 kí tự.
Chạy chương trình trên.
Dữ liệu vào: chuỗi biểu thức dạng trung tố.
Dữ liệu ra: chuỗi biểu thức dạng hậu tố.
Câu 2:
Em hãy minh hoạ:
a) Kiểm tra tính hợp lệ của dấu ngoặc trong chuỗi [2 * (4 + 3) - 5] bằng cách sử dụng ngăn xếp.
b) Chuyển biểu thức (1 - 4) * 2 + 7 sang dạng hậu tố bằng cách sử dụng ngăn xếp.
Câu 3:
Viết chương trình kiểm tra tính hợp lệ của dấu ngoặc trong chuỗi biểu thức số học. Dữ liệu vào: chuỗi biểu thức số học.
Dữ liệu ra: nếu các dấu ngoặc cân bằng thì thông báo lên màn hình "Chuỗi có dấu ngoặc hợp lệ", ngược lại thông báo "Chuỗi có dấu ngoặc không hợp lệ".
Câu 4:
Nhiệm vụ. Chuyển biểu thức dạng trung tố sang tiền tố.
Yêu cầu: Viết chương trình chuyển một biểu thức dạng trung tố inFix sang dạng tiền tố preFix.
Dữ liệu vào: chuỗi biểu thức dạng trung tố.
Dữ liệu ra: chuỗi biểu thức dạng tiền tố.
Câu 5:
Nhiệm vụ: Viết chương trình tính giá trị của biểu thức số học với biểu thức đầu vào là biểu thức hậu tố.
Yêu cầu: Viết chương trình tính giá trị biểu thức số học dùng hàm chuyển biểu thức inFixtoPostfix(). Chạy chương trình trên.
về câu hỏi!