publicbooleanisPalindrome(String s) { if (s == null || s.length() <= 1) { returntrue; }
intn= s.length(); intleft=0; intright= n - 1; while (left < right) { while (left < n && left < right && !(Character.isDigit(s.charAt(left)) || Character.isAlphabetic(s.charAt(left)))) { left++; }
while (right > 0 && left < right && !(Character.isDigit(s.charAt(right)) || Character.isAlphabetic(s.charAt(right)))) { right--; }
if (Character.toUpperCase(s.charAt(left)) != Character.toUpperCase(s.charAt(right))) { returnfalse; }
while (left < right && Character.toUpperCase(s.charAt(left)) == Character.toUpperCase(s.charAt(right))) { left++; right--; } }
returntrue; }
Analysis
Time Complexity:
Space Complexity:
All suggestions are welcome. If you have any query or suggestion please comment below. Please upvote👍 if you like💗 it. Thank you:-)
预览: