假设表达式中允许包含两种括号:圆括号和方括号,其嵌套的顺序随意 但需要成对出现。即([ ]())或[([][])]等为正确的格式,[(])或([())或(() 221224严2年 为不正确的格式。 给定一串括号输入(换行作为结束符),检测格式是否正确,若正确输出 YES;错误输出 NO。【样例输入】([]()) 【样例输出】 YES
时间: 2024-04-16 11:23:45 浏览: 99
为了检测括号的格式是否正确,可以使用栈的数据结构来进行处理。遍历输入的括号字符串,当遇到左括号时,将其入栈;当遇到右括号时,检查栈顶元素是否与当前右括号匹配,如果匹配则将栈顶元素出栈,否则返回错误。最后检查栈是否为空,如果为空则输出YES,否则输出NO。
以下是一个示例的Python代码实现:
```python
def check_brackets(input_str):
stack = []
for char in input_str:
if char in ['(', '[']:
stack.append(char)
elif char in [')', ']']:
if not stack:
return 'NO'
if (char == ')' and stack[-1] == '(') or (char == ']' and stack[-1] == '['):
stack.pop()
else:
return 'NO'
if not stack:
return 'YES'
else:
return 'NO'
# 读取输入
input_str = ''
while True:
line = input()
if line == '':
break
input_str += line
# 检测括号格式
result = check_brackets(input_str)
print(result)
```
你可以尝试运行以上代码,并输入"([]())"进行测试。输出应该为"YES"。
阅读全文