python括号配对题
时间: 2023-11-17 15:03:43 浏览: 33
以下是Python实现括号匹配问题的代码和解释:
```python
def is_valid(s):
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("{{[()]}}")) # 输出:True
print(is_valid("[](")) # 输出:False
print(is_valid("{}{}]")) # 输出:False
```
代码解释:
1. 定义一个函数`is_valid(s)`,其中`s`为输入的字符串。
2. 定义一个空列表`stack`,用于存储左括号。
3. 定义一个字典`mapping`,用于存储右括号和对应的左括号。
4. 遍历字符串`s`中的每个字符`char`。
5. 如果`char`是右括号,则弹出`stack`中的最后一个元素`top_element`,如果`stack`为空,则将`top_element`赋值为`#`。
6. 如果`mapping[char]`不等于`top_element`,则返回`False`,表示括号不匹配。
7. 如果`char`是左括号,则将其压入`stack`中。
8. 遍历完字符串`s`后,如果`stack`为空,则返回`True`,表示括号匹配;否则返回`False`,表示括号不匹配。