publicclassSolution{publicbooleanisPalindrome(Strings){if(s.length()==0)returntrue;int[] source =s.toLowerCase().chars().filter(c ->('a'<= c && c <='z')||('0'<= c && c <='9')).toArray();for(int i =0; i <source.length/2;++i){if(source[i]!= source[source.length-1- i])returnfalse;}returntrue;}}
public class Solution {
public boolean isPalindrome(String s) {
List<Character> lst = new ArrayList<>();
for (char c : s.toCharArray()) {
char a = Character.toUpperCase(c);
if (Character.isLetter(a) || Character.isDigit(a)) {
lst.add(a);
}
}
int left = 0, right = lst.size() - 1;
while (left < right) {
if (lst.get(left) != lst.get(right)) return false;
left++;
right--;
}
return true;
}
}
class Solution(object):
def isPalindrome(self, s):
"""
:type s: str
:rtype: bool
"""
s = re.sub('[^0-9a-zA-Z]', '', s).lower()
return s == s[::-1]
class Solution:
"""
@param: s: A string
@return: Whether the string is a valid palindrome
"""
def isPalindrome(self, s):
arr = [c.lower() for c in s if c.isalpha() or c.isdigit()]
left = 0
right = len(arr) - 1
while left < right:
if not arr[left] == arr[right]:
return False
left += 1
right -= 1
return True
class Solution {
public boolean isPalindrome(String s) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < s.length(); ++i) {
if (isValid(s.charAt(i))) {
sb.append(toUpperCase(s.charAt(i)));
}
}
return sb.toString().equals(sb.reverse().toString());
}
private char toUpperCase(char c) {
if (c > 'Z') return (char)(c - 'a' + 'A');
else return c;
}
private boolean isValid(char c) {
if ('0' <= c && c <= '9' || 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z') {
return true;
} else {
return false;
}
}
}