写一段python代码根据括号字符串在符号集合的位置判断是否匹配
时间: 2023-11-22 16:54:29 浏览: 38
可以使用栈来判断括号字符串是否匹配。具体实现如下:
```python
def is_valid(s: str, symbol_set: set) -> bool:
stack = []
for c in s:
if c in symbol_set:
if c in {'(', '[', '{'}:
stack.append(c)
else:
if not stack:
return False
top = stack.pop()
if (c == ')' and top != '(') or \
(c == ']' and top != '[') or \
(c == '}' and top != '{'):
return False
return len(stack) == 0
```
其中,`s` 是待判断的括号字符串,`symbol_set` 是符号集合,例如 `set(['(', ')', '[', ']', '{', '}'])`。函数返回值为布尔型,表示该括号字符串是否匹配。
我们遍历 `s` 中的每个字符,如果该字符是符号集合中的符号,则进行相应的操作:如果是左括号,则将其压入栈中;如果是右括号,则弹出栈顶元素,判断是否匹配。如果栈为空或者栈顶元素与当前字符不匹配,则说明括号字符串不匹配。
最后,如果栈为空,则说明括号字符串匹配;否则,说明括号字符串不匹配。
相关推荐
![application/pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)