给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
示例 1:
输入: "A man, a plan, a canal: Panama"
输出: true
示例 2:
输入: "race a car"
输出: false
package Leetcode;
public class 验证回文串 {
public static boolean isPalindrome(String s) {
if(s.length()==0||s.length()==1){return true;}
int i=0,j=s.length()-1;
while (i<j){
char l=s.charAt(i);
char r=s.charAt(j);
if (l>= 'A' && l <= 'Z') {
l+= ' ';
}else if(!(l >= 'a' && l <= 'z' || l >= '0' && l <= '9')){
i++;
continue;
}
if (r>= 'A' && r<= 'Z') {
r+= ' ';
}else if(!(r >= 'a' && r <= 'z' || r >= '0' && r <= '9')){
j--;
continue;
}
if(l!=r){
return false;
}
i++;
j--;
}
return true;
}
public static void main(String[] args) {
String str1="A man, a plan, a canal: Panama";
String str2="race a car";
System.out.println(isPalindrome(str1));
System.out.println(isPalindrome(str2));
}
}