预推免数据结构面试题
时间: 2023-11-09 18:00:15 浏览: 157
好的,预推免数据结构面试题如下:
给定一个字符串s,只包含左右括号和字母。请你判断该字符串是否为合法的括号匹配。
例如:
输入:"()[]{}"
输出:true
输入:"([)]"
输出:false
输入:"({[]})"
输出:true
解题思路:
可以用栈来解决这个问题。遍历字符串s,如果遇到左括号,就将其压入栈中,如果遇到右括号,就将栈顶元素弹出,并判断弹出的左括号是否与当前的右括号匹配,如果不匹配则返回false。最后如果栈为空,则说明括号匹配成功,返回true,否则返回false。
以下是Python代码实现:
```python
def isValid(s: str) -> bool:
if len(s) % 2 != 0:
return False
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(isValid("()[]{}"))
print(isValid("([)]"))
print(isValid("({[]})"))
```
阅读全文