1、介绍双端队列的python是实现方法
2、利用双端队列实现回文数的检查
1、python实现双端队列
- deque也被称作双端队列,是一个有序数据集合。
- 可以从两端添加数据,也可以从两端删除数据。
- 主要方法:
- Deque():创建一个新的双端队列
- addFront():从前端添加数据
- addRear():从后端添加数据
- removeFrount():从前端删除数据
- removeRear():从后端删除数据
- isEmpty():判断双端队列是否为空
- size():返回双端队列的长度
class Deque:
def __init__(self):
self.items = []
def isEmpty(self):
return self.items == []
def size(self):
return len(self.items)
def addFront(self, item):
self.items.append(item)
def addRear(self, item):
self.items.insert(0, item)
def removeFront(self):
return self.items.pop()
def removeRear(self):
return self.items.pop(0)
d = Deque()
print(d.isEmpty())
d.addRear(4)
d.addRear('dog')
d.addFront("cat")
print(d.size())
print(d.isEmpty())
d.addRear(6.8)
print(d.removeRear())
print(d.removeFront())
d.addFront("hello")
print(d.removeFront())
True
3
False
6.8
cat
hello
2、利用双端队列解决回文数问题
def palChecker(string):
deq = Deque()
for char in string:
deq.addFront(char)
still_OK = True
while deq.size() > 1 and still_OK:
first = deq.removeFront()
last = deq.removeRear()
if first != last:
still_OK = False
return still_OK
print(palChecker("lsdkjfskf"))
print(palChecker("radar"))
False
True