Description
Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.
Note: For the purpose of this problem, we define empty string as valid palindrome.
Constraints:
• s consists only of printable ASCII characters.
Example
Example 1:
Input: “A man, a plan, a canal: Panama”
Output: true
Example 2:
Input: “race a car”
Output: false
Submissions
首先题目要求中提到只考虑字母和数字字符,可以忽略字母的大小写,因此利用python的 isalnum()方法和lower()方法。
Python isalnum() 方法检测字符串是否由字母和数字组成。
Python lower() 方法转换字符串中所有大写字符为小写。
遍历给定字符串,将其中的字母和数字转换为小写添加到res列表,最后判断res是否是回文串即可。
实现代码如下:
class Solution:
def isPalindrome(self, s: str) -> bool:
res = []
for i in range(len(s)):
if s[i].isalnum():
res.append(s[i].lower())
return res == res[::-1]