public class Palindrome {
private boolean isAlphanueric(char c) {
return (c>='a' && c<='z') || (c>='A'&&c<='Z') || (c>='0'&&c<='9');
}
private boolean isEqualIgnoreCase(char a,char b) {
if(a>='A' && a<='Z') a+=32;
if(b>='A' && b<='Z') b+=32;
return a==b;
}
//Time:O(n),Space:O(1)
public boolean isPalindrome(String s) {
if(s == null || s.length() == 0) return true; //边界情况
int i = 0,j=s.length()-1;
for(;i<j;++i,--j) {
while(i<j && !isAlphanueric(s.charAt(i))) ++i;
while(i<j && !isAlphanueric(s.charAt(j))) --j;
if(i<j && !isEqualIgnoreCase(s.charAt(i),s.charAt(j))) return false;
}
return true;
}
}
[Java算法]1、回文字符串判断算法
最新推荐文章于 2024-08-11 08:30:00 发布