Valid Palindrome in Java: Explanation & Practice

Check if string is palindrome considering only alphanumeric

Problem summary

Given a string, determine if it's a palindrome considering only alphanumeric characters and ignoring case. Use two pointers from both ends.

Starter code

public class Main {
    public static void main(String[] args) {
        String s = "A man, a plan, a canal: Panama";
        
        // Two pointers: left and right
        // Skip non-alphanumeric characters
        // Compare characters (case-insensitive)
        // Print: Is palindrome: true
    }
}

Expected output and test cases

  • A man, a plan, a canal: Panama
    Is palindrome: true
  • race a car
    Is palindrome: false
  • Is palindrome: true

Hints

  1. Use Character.isLetterOrDigit() to check valid characters
  2. Use Character.toLowerCase() for case-insensitive comparison
  3. Move pointers inward, skipping invalid characters
  4. If characters don't match, it's not a palindrome

Related Data Structures & Algorithms exercises

Practice all Data Structures & Algorithms exercises · Run this idea in the Java compiler