Back to Practice Dashboard
Top 150 InterviewEasy

Valid Palindrome

Learn how to solve the 'Valid Palindrome' problem. This detailed resource details brute force and optimized approaches.

Problem Statement

Easy

A phrase is a palindrome if, after converting all uppercase letters into lowercase letters and removing all non-alphanumeric characters, it reads the same forward and backward. Alphanumeric characters include letters and numbers.

Given a string s, return True if it is a palindrome, or False otherwise.

Write a function isPalindrome(s: str) -> bool.

Constraints
  • 1 <= len(s) <= 2 * 10^5
  • s consists only of printable ASCII characters

Examples

Example 1
Input
s = "A man, a plan, a canal: Panama"
Output
True
Explanation

After removing non-alphanumeric characters and converting to lowercase: "amanaplanacanalpanama", which is a palindrome.

Example 2
Input
s = "race a car"
Output
False
Explanation

After processing: "raceacar" is not a palindrome.

Example 3
Input
s = " "
Output
True
Explanation

After removing non-alphanumeric characters, s is an empty string. An empty string is a palindrome by definition.

Need a Hint?
Use two pointer variables starting at different bounds (e.g. left = 0, right = length - 1) and shrink the search window.
Edge Cases to Watch
  • Empty list or null input variables
  • Single item lists/arrays
  • Extremely large input bounds causing integer or stack overflow

Ready to Solve?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Open in Editor