题目描述:
解题思路:
1:首先忽略大小写,使用String的toLowerCase();
2:提供方法判断的字符在0-9和a-z之间
3:定义两个下标,left=0,right=str.length-1
4:当left<right的时候一直循环,当前字符如果不满足要求(不在0-9或者a-z),则left++或者right–
5:当字符满足要求且相等left++,right–
代码:
public static boolean func(char ch){
if(ch>='0' && ch<='9' || ch>='a' && ch<='z'){
return true;
}
return false;
}
public static boolean isFun(String str){
if(str==null || " ".equals(str)){
return true;
}
str=str.toLowerCase();
int left=0;
int right=str.length()-1;
while (left<right){
while (left<right && !func(str.charAt(left))){
left++;
}
while (left<right && !func(str.charAt(right))){
right--;
}
if(str.charAt(right)!=str.charAt(left)){
return false;
}
left++;
right--;
}
return true;
}