Xâu kí tự được gọi là biểu thức nếu nó là rỗng hoặc chỉ chứa các ki tự “(“ và “)”
Ví dụ: "((()())())". Xâu biểu thức được gọi là đúng nếu vị trí các dáu ngoặc được sắp xếp hợp lí theo tự nhiên. Ví dụ các xâu sau là biểu thức đúng:
()
(()())
Ví dụ các xâu biểu thức sau là sai:
((())
))()()
Có thể định nghĩa khái niệm biểu thức đúng bằng đệ quy như sau:
- Xâu rỗng là đúng.
- Nếu xâu A, B đúng thì xâu AB đúng.
- Nếu xâu A là đúng thì xâu (A) đúng.
Cho trước xâu biểu thức A, viết chương trình kiểm tra xem A có là biểu thức đúng hay không. Yêu cầu sử dụng kiểu dữ liệu ngăn xếp.
Quảng cáo
1 câu trả lời 114
def is_valid_expression(expression):
# Khởi tạo ngăn xếp rỗng
stack = []
# Tạo một từ điển để ghép các dấu ngoặc đóng với dấu ngoặc mở tương ứng
matching_parentheses = {')': '(', '}': '{', ']': '['}
# Duyệt qua từng ký tự trong biểu thức
for char in expression:
if char in matching_parentheses.values():
stack.append(char)
elif char in matching_parentheses.keys():
if not stack or stack.pop() != matching_parentheses[char]:
return False
return not stack
Quảng cáo
Bạn cần hỏi gì?
Câu hỏi hot cùng chủ đề
-
Đã trả lời bởi chuyên gia
148948 -
Đã trả lời bởi chuyên gia
99296 -
Đã trả lời bởi chuyên gia
97071 -
Đã trả lời bởi chuyên gia
79778 -
Đã trả lời bởi chuyên gia
72664 -
Đã trả lời bởi chuyên gia
55704 -
Đã trả lời bởi chuyên gia
55063
