忽视其他符号判断是否是回文串....利用while从两头开始分别判断每个符合要求的字母/数字是否相同...出现不同及时跳出....
细心为上!!!
public class Solution {
public boolean isPalindrome(String s)
{
int s1=0,s2=s.length()-1;
boolean res = true;
while(s1<s2)
{
if( !((s.charAt(s1)>='a'&&s.charAt(s1)<='z')||(s.charAt(s1)>='0'&&s.charAt(s1)<='9')||(s.charAt(s1)>='A'&&s.charAt(s1)<='Z')) )
{
s1++;
continue;
}
if( !((s.charAt(s2)>='a'&&s.charAt(s2)<='z')||(s.charAt(s2)>='0'&&s.charAt(s2)<='9')||(s.charAt(s2)>='A'&&s.charAt(s2)<='Z')) )
{
s2--;
continue;
}
if(Character.toLowerCase(s.charAt(s1))!=Character.toLowerCase(s.charAt(s2)))
{
res = false;
break;
}
s1++;
s2--;
}
return res;
}
}
本文介绍了一种忽略特殊字符的回文串判断算法,通过双指针从字符串两端向中间遍历,比较字母和数字字符的大小写不敏感匹配。
299

被折叠的 条评论
为什么被折叠?



