Palindrome - 125. Valid Palindrome

时间:2022-07-25
本文章向大家介绍Palindrome - 125. Valid Palindrome,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
  1. Valid Palindrome

Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.

Note: For the purpose of this problem, we define empty string as valid palindrome.

Example 1:

Input: "A man, a plan, a canal: Panama" Output: true

Example 2:

Input: "race a car" Output: false

思路:

题目意思是说给定一个字符串,只看字母和数字是否是回文字符串,使用two pointer来做,寻找首尾位置的字母或者数字,进行比对。

代码:

java:

class Solution {

    public boolean isPalindrome(String s) {
        if (s == null || s.length() == 0) return true;
        
        char[] array = s.toCharArray();
        int len = s.length();
        int low = 0, high = len - 1;
        
        while (low <= high) {
            if (!Character.isLetterOrDigit(array[low])) low++;
            else if (!Character.isLetterOrDigit(array[high])) high--;
            else {
                if (Character.toLowerCase(array[low]) != Character.toLowerCase(array[high])) return false;
                low++; 
                high--;
            }
        }
        
        return true;
     }
}