字符串中只含有括号+(),[],<>,{},判断输入的字符串中括号是否匹配。如果括号有互相包含的形式,从内到外必须是<>,(),[],{},例如。输入:+[()]+输出+YES,而输入([]),([)
时间: 2023-11-25 22:52:14 浏览: 139
以下是Python判断字符串中括号是否匹配的代码:
```python
def is_valid(s: str) -> bool:
stack = []
mapping = {")": "(", "}": "{", "]": "["}
for char in s:
if char in mapping:
top_element = stack.pop() if stack else '#'
if mapping[char] != top_element:
return False
else:
stack.append(char)
return not stack
# 测试
print(is_valid("([])"))
print(is_valid("([)]"))
print(is_valid("+[()]+"))
```
输出:
```
True
False
True
```
代码思路:
1. 定义一个栈stack和一个映射mapping,映射中存储右括号和左括号的对应关系。
2. 遍历字符串中的每个字符char,如果char是右括号,则从栈顶弹出一个元素top_element,如果栈为空则将top_element赋值为'#'。如果mapping[char]不等于top_element,则说明括号不匹配,返回False。
3. 如果char是左括号,则将其压入栈中。
4. 遍历完字符串后,如果栈为空,则说明所有括号都匹配,返回True;否则返回False。
阅读全文