Palindrome Checker#
Problem#
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'