Notes

Personal notes on various topics

View on GitHub

Intuition

To check if a string is a palindrome, we need to ignore non-alphanumeric characters and compare the string from both ends, considering only lowercase letters and digits.

Approach

Complexity

Code

class Solution:
    def isPalindrome(self, s: str) -> bool:
        i, j = 0, len(s) - 1

        while i < j:
            while i < j and not s[i].isalnum():
                i += 1
            while i < j and not s[j].isalnum():
                j -= 1

            if s[i].lower() != s[j].lower():
                return False

            i += 1
            j -= 1

        return True

Back to Problem Statement