NumPy allowed · plain Python earns 10 bonus points
Implement the two-pointer palindrome check -- inward convergence from both ends while skipping non-alphanumeric characters and normalizing case in O(n) time and O(1) extra space.
Implement is_palindrome(s): return True if after filtering out all non-alphanumeric characters and converting all letters to lowercase, the string reads the same forwards and backwards.
is_palindrome(s: str) -> bool