0125. Valid Palindrome #
题目 #
如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样,则可以认为该短语是一个 回文串。
字母和数字都属于字母数字字符。
给定字符串 s
,判断其是否为 回文串。
思路 #
代码 #
class Solution {
public boolean isPalindrome(String s) {
int left = 0, right = s.length() - 1;
while (left < right) {
while (left < s.length() && Character.isLetterOrDigit(s.charAt(left)) == false) left += 1;
while (right >= 0 && Character.isLetterOfDigit(s.charAt(right)) == false) right -= 1;
if (left >= right) return true;
if (Character.toLowerCase(s.charAt(left++)) != Character.toLowerCase(s.charAt(right--))) return false;
}
return true;
}
}