LeetCode125-验证回文串

最近一段时间都没怎么更新文章

实在是抱歉

上个星期一直在写专利

然后周末我的大学同学和高中同学都过来了

所以真的是没心思写文章了

Ps:说了这么多其实就是想为自己找个理由

不过上个周末是真的玩累了

每天2万步以上

中餐晚餐都是硬核大餐

吃得我是撑爆了

也许,这正如我康哥说的那样:

我就是一过穷逼日子的命

哈哈哈哈哈哈哈哈

直接上两张图

 


125-验证回文串

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

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

示例 1:

输入: "A man, a plan, a canal: Panama"
输出: true

示例 2:

输入: "race a car"
输出: false

思路:

这一题的干扰因子无非就是非数字和字母的字符了,比如空格,标点符号。既然这些都是无用信息,那我们留它干甚?直接把它们给去掉组合成一新的字符串就可进行判断了。这儿补充;两个关于python字符串的常用函数:isdigit()用于判断当前字符串是否为数字;isalpha()用于判断当前字符串是否为字母。

代码如下:

class Solution(object):
    def isPalindrome(self, s):
        """
        :type s: str
        :rtype: bool
        """
        s_list = list(s)
        new_s_list = [index.lower() for index in s_list if index.isalpha() or index.isdigit()]
        return True if new_s_list == new_s_list[: : -1] else False


if __name__ == "__main__":
    s = "A man, a plan, a canal: Panama"
    result = Solution().isPalindrome(s)
    print(result)

执行效率在50%左右。中等!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习的学习者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值