Create a new class to implement the data type of the deque, and then use the deque to implement the palindrome problem.
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'))
The result is shown in the figure below: