实验四:栈、队列的应用算法:输入一个字符串,分别进行回文判断和括号匹 配。代码
时间: 2024-12-13 15:25:00 浏览: 21
实验四涉及到栈和队列这两种数据结构在实际问题中的应用。对于字符串的回文判断和括号匹配,可以采用以下策略:
1. 回文判断:
- 使用两个指针,一个从字符串开始(i),另一个从结尾向内移动(j)。将当前字符 i 和 j 对应的值比较,如果相等则继续,如果不等则不是回文,结束检查。同时,指针每次移动一位,直到它们相遇或交叉。代码大致如下:
```python
def is_palindrome(s):
left, right = 0, len(s) - 1
while left < right:
if s[left] != s[right]:
return False
left += 1
right -= 1
return True
```
2. 括号匹配:
- 使用一个栈来保存遇到的左括号。遍历字符串,如果遇到左括号(如 '(', '{', '['),将其压入栈中;如果遇到右括号(如 ')', '}', ']`),检查栈顶元素是否与其配对,若配对则弹出栈顶元素,否则说明不匹配。遍历结束后,如果栈为空,则所有括号都已正确匹配。
```python
def is_valid_brackets(s):
stack = []
pairs = {')': '(', '}': '{', ']': '['}
for char in s:
if char in pairs:
if not stack or stack[-1] != pairs[char]:
return False
stack.pop()
else:
stack.append(char)
return not stack # 如果栈为空,表示所有括号均配对
```
阅读全文