目录
题目:
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
示例 1:
输入: "A man, a plan, a canal: Panama"
输出: true
示例 2:
输入: "race a car"
输出: false
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/valid-palindrome
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
求解:
class Solution:
def isPalindrome(self, s: str) -> bool:
s = ''.join(filter(str.isalnum,s)).lower()
return s==s[::-1]
代码解析:
(1)str.lower()
python中lower()方法,转换字符串中所有大写字符为小写。
str.lower()
返回值
返回将字符串中所有大写字符串转换为小写后生成的字符串。
(2)filter()函数
用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
function 判断函数
iterable 可迭代对象
filter(function, iterable)
序列的每个元素作为参数传递给函数进行判断,然后返回True或False,最后将返回True的元素放到新列表中。
def is_odd(n):
return n % 2 == 1
newlist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(newlist)
'''
[1, 3, 5, 7, 9]
'''
(3)str.isalnum()
检测字符串是否由字母和数字组成。
str.isalnum()
返回值:如果string至少有一个字符并且所有字符都是字母或数字则返回True,否则返回False。
如果去掉(),则返回的是<built-in method isalnum of str object at 0x0000016880396688>
(4)join()方法
用于将序列中的元素以指定的字符连接生成一个新的字符串。
str.join(sequence)
sequence 要连接的元素序列。
返回值:返回通过指定字符连接序列中元素后生成的新字符串。
例:
str = "-";
seq = ("a", "b", "c"); # 字符串序列
print str.join( seq );
(5)[a:b:c]
a:起
b:末
c:步长