[Java算法]1、回文字符串判断算法

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;

	}

}

猜你喜欢

转载自blog.csdn.net/qq_39400208/article/details/83340809