Palindrome Checker

Palindrome Checker#

Twitter Handle LinkedIn Profile GitHub Profile LeetCode Problem Difficulty

Problem#

Question details can be found here.

Constraints and Assumptions#

Placeholder.

Implementation#

@dataclass(frozen=False, init=True)
class Solution:
    deque: ArrayDeque[str] = field(default_factory=ArrayDeque)

    def check_palindrome(self, string: str) -> bool:
        for char in string:
            self.deque.add_rear(char)  # enqueue

        while self.deque.size > 1:
            front = self.deque.remove_front()
            rear = self.deque.remove_rear()
            if front != rear:
                return False
        # if deque.size = 1 then it must be true
        return True
str_1 = "radar"
str_2 = "lsdkjfskf"

Solution().check_palindrome(str_1), Solution().check_palindrome(str_2)
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In[3], line 4
      1 str_1 = "radar"
      2 str_2 = "lsdkjfskf"
      3 
----> 4 Solution().check_palindrome(str_1), Solution().check_palindrome(str_2)

Cell In[2], line 9, in Solution.check_palindrome(self, string)
      5     def check_palindrome(self, string: str) -> bool:
      6         for char in string:
      7             self.deque.add_rear(char)  # enqueue
      8 
----> 9         while self.deque.size > 1:
     10             front = self.deque.remove_front()
     11             rear = self.deque.remove_rear()
     12             if front != rear:

AttributeError: 'ArrayDeque' object has no attribute 'size'