Leetcode125. 验证回文串

题目描述:

如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。

字母和数字都属于字母数字字符。

给你一个字符串 s,如果它是 回文串 ,返回 true ;否则,返回 false 

题解:

class Solution:
    def isPalindrome(self, s: str) -> bool:
        s=s.lower()
        new_s=''
        for i in s:
            if 'a'<=i<='z'or '0'<=i<='9':
                new_s+=i
        if new_s=='':
            return True
        p=0
        q=len(new_s)-1
        while p<=q:
            if new_s[p]!=new_s[q]:
                return False
            else:
                p+=1
                q-=1
        return True

    

思路:

1.首先将所有字符转成小写,用了python中的内置函数lower。

2.将字符提取出来。

3.特殊情况,空字符串直接返回True。

4.使用前后指针,如果字符相同,就向前向后移动一位,如果不同,返回False。直到两个指针重合,说明正反相同位置的字符是一样的,也就是回文串,返回True。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值