leetcode_125. 验证回文串python

该博客介绍了如何使用Python验证一个字符串是否为回文,即正读反读都一样的字符串。内容包括:过滤非字母数字字符、忽略大小写,并提供了涉及的Python函数如join(), filter(), 和isalnum()的用法和注意事项。" 135005490,631449,高斯混合模型(GMM):超越K-Means的无监督学习,"['机器学习', '算法', '聚类分析']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。

说明:本题中,我们将空字符串定义为有效的回文串。

示例 1:

输入: “A man, a plan, a canal: Panama”

输出: true

示例 2:

输入: “race a car”

输出: false

思想:

将数字及字母过滤出来,过滤这个事件,就要想到filter这个函数,判断是否是字母或者数字,用isalnum这个函数,再有就是区分大小写,用到low这个函数转小写。

代码:

class Solution:
    def isPalindrome(self, s):
        """
        :type s: str
        :rtype: bool
        """
        s = ''.join(filter(str.isalnum,str(s.lower())))
        return s==s[::-1]

知识点:几个函数的用法和注意事项

1..join():Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
用法

str = "-";
seq = ("a", "b", "c"); # 字符串序列
print str.join( seq );

输出:a-b-c

2.filter():filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
语法

filter(function, iterable)

参数

  • function – 判断函数。
  • iterable – 可迭代对象。

用法

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.isalnum():Python isalnum() 方法检测字符串是否由字母和数字组成。

用法

str = "this2009"; # 字符中没有空格
print str.isalnum();
str = "this is string example....wow!!!";
print str.isalnum();

输出

True
False

注意:
str.isalnum()
注意str应该要是ascii编码,不然
new_s = list(filter(str.isalnum,s.lower()))时候会报错:

TypeError: descriptor ‘isalnum’ requires a ‘str’ object but received a
‘unicode’

改成new_s = list(filter(str.isalnum,str(s.lower())))
就好了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值