回文校验题目:https://leetcode.com/problems/valid-palindrome/
解题思路:
1.把字符串全部小写
2.使用两个指针,一个指向字符串的头,一个值向字符串的尾,如果不是字母,头指针向后移动,尾指针向后移动,
public static void main(String[] args) {
String str="A man, a plan, a canal: Panama";
boolean palindrome = isPalindrome(str);
System.out.println(palindrome);
}
public static boolean isPalindrome(String s) {
s = s.toLowerCase();
int i=0;
int j=s.length()-1;
char c;
char d;
while(i<j){
c = s.charAt(i);
d = s.charAt(j);
if(!isNumbersAndLetters(c)){
i++;
}
if(!isNumbersAndLetters(d)){
j--;
}
if(isNumbersAndLetters(c)&&isNumbersAndLetters(d)){
if(c==d){
i++;
j--;
}else{
return false;
}
}
}
return true;
}
public static boolean isNumbersAndLetters(char c){
if((c>='a' && c<='z')|| (c>='A' && c<='Z') || (c>='0' &&c<='9')){
return true;
}
return false;
}