创建一个新类来实现双端队列的数据类型,然后运用双端队列来实现回文问题。
class Deque:
def __init__(self):
self.items = []
def isEmpty(self):
return self.items == []
def addFont(self, item):
self.items.append(item)
def addRear(self, item):
self.items.insert(0, item)
def removeFont(self):
return self.items.pop()
def removeRear(self):
return self.items.pop(0)
def size(self):
return len(self.items)
s=Deque()
s.addFont(1)
s.addFont(3)
s.addRear(2)
s.addRear(4)
s.addRear(5)
print(s.items)
s.removeFont()
print(s.items)
s.removeRear()
print(s.items)
def palchecker(aSring):
chaedeque = Deque()
for ch in aSring:
chaedeque.addFont(ch)
stillequeal=1
while chaedeque.size()>1 and stillequeal:
f = chaedeque.removeRear()
l = chaedeque.removeFont()
if f != l:
stillequeal=0
return stillequeal
print(palchecker('abcdedcba'))
print(palchecker('abcd1edcba'))
结果如下图所示: