Skip to content

Instantly share code, notes, and snippets.

@waikyaw9999
Created December 12, 2020 17:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save waikyaw9999/675c09e6eeedd3ca8c176292ccabd3b5 to your computer and use it in GitHub Desktop.
Save waikyaw9999/675c09e6eeedd3ca8c176292ccabd3b5 to your computer and use it in GitHub Desktop.
class Deque:
def __init__(self):
self.items = []
def add_front(self, item):
self.items.insert(0, item)
def add_rear(self, item):
self.items.append(item)
def remove_front(self):
return self.items.pop(0)
def remove_rear(self):
return self.items.pop()
def size(self):
return len(self.items)
def check_palindrome(input_str):
deck = Deque()
for char in input_str:
deck.add_rear(char)
while deck.size() >= 2: # 1 or 0 means the string is a palindrome
front_item = deck.remove_front() # get front character
rear_item = deck.remove_rear() # get rear character
if front_item != rear_item: # return false if front is not equal to rear
return False
return True #return true if front is equal to rear
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment