public boolean isPalindrome(String s) {
		if(s == null || s.length() == 0) return true;
		int start = -1, end = s.length(); // bug2: forget to change 0 to -1, after fix bug1
		while(start < end) {
			start = findNext(s, start + 1, true); // bug1: forget to +1, so endless loop...
			end = findNext(s, end - 1, false);
			if(start < end) {
				if(!isEqual(s, start, end)) return false;
			}
		}
		return true;
	}