利用栈和队列完成回文的判断代码
时间: 2023-10-24 14:04:49 浏览: 148
判断回文(用到栈和队列)
3星 · 编辑精心推荐
使用栈和队列可以判断一个字符串是否为回文,具体实现方式如下:
```python
class Solution:
def isPalindrome(self, s: str) -> bool:
# 去除字符串中的非字母数字字符,并转化为小写
s = ''.join(filter(str.isalnum, s)).lower()
# 使用栈和队列分别存储字符串的前半部分和后半部分
stack, queue = [], []
for i in range(len(s)):
if i < len(s) // 2:
stack.append(s[i])
elif len(s) % 2 == 0 and i == len(s) // 2:
continue
else:
queue.append(s[i])
# 依次比较栈和队列中的字符是否相等
while stack and queue:
if stack.pop() != queue.pop(0):
return False
return True
```
这里我们使用了 Python 中的列表(List)来实现栈和队列。具体来说,使用 `append()` 和 `pop()` 方法可以实现栈的压入和弹出,而使用 `append()` 和 `pop(0)` 方法可以实现队列的入队和出队。
阅读全文