Valid Palindrome

L3 Easy Two Pointers
Concept
When junk characters are sprinkled throughout, two pointers still work — they simply skip over anything that is not a letter or digit.
A phrase reads the same forwards and backwards once you ignore anything that is not a letter or digit and ignore letter case. Given s, return true if it qualifies, and false otherwise.
Examples
▸ s = "Was it a car or a cat I saw?"
→ true
▸ s = "Hello, world!"
→ false
▸ s = "12321"
→ true
Progressive Hints
Hint 1 · Nudge
Letters and digits are the only things that matter, and case goes quiet.
Hint 2 · Plan
Put one pointer at the start and one at the end. While they haven't crossed, skip any character that isn't a letter or digit on each side, compare the two you stop on, and return false if they differ. Move both inward.
Hint 3 · Approach
left = 0, right = last index. While left < right: skip non-alphanumeric characters on each side, compare the lowercased letters, return false if they differ, then move both inward. Return true.
Output
// Run your code to see the output here.