InterviewHubPRO
Section Overview
Q19

Question 19 of 100

Part 3: Two Pointers & Sliding Window (19 - 28)

19%
DSA Patterns (Multi-Lang)•Part 3: Two Pointers & Sliding Window (19 - 28)

Valid Palindrome.

In Simple Words: Two pointers moving towards center. Skip non-alphanumeric characters, compare lowercase characters. If any mismatch, return false; else true when pointers cross.

  • Time: $O(N)$ | Space: $O(1)$
Multi-Language Solutions
Switch tabs or choose All
def isPalindrome(s: str) -> bool:
    l, r = 0, len(s) - 1
    while l < r:
        while l < r and not s[l].isalnum():
            l += 1
        while l < r and not s[r].isalnum():
            r -= 1
        if s[l].lower() != s[r].lower():
            return False
        l += 1
        r -= 1
    return True