美文网首页算法升级打怪
LeetCode125-验证回文串-Python实现

LeetCode125-验证回文串-Python实现

作者: 羊yang678 | 来源:发表于2021-06-09 23:13 被阅读0次

题目难度: Easy
题目描述:
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/valid-palindrome/

验证回文串的思路一般有两种:

  1. 字符串反转后和原串相等
  2. 使用两个指针,前后两指针指向的元素相等
    这一题特殊的地方在于只考虑字母和数字字符,不考虑其他字符,如空格,一些特殊字符 ¥ # 等。所以可以考虑先将字符串中的数字、字母摘出来,组成新的字符串,然后采用以上两种方法判断字符串是否是回文字符串。不过这种方法需要额外开辟空间,并非最优解。 另一种思路是采用两个指针的方法,但是指针所指元素如果非字母或字符串,则不进行比较,而是直接将指针向前向后移动。

Python 代码实现:

class Solution:
    def isPalindrome(self, s: str) -> bool:
        if not s:
            return True
        left, right = 0, len(s) - 1
        while left <  right:
            while left<right and not s[left].isalnum():
                left = left + 1
            while left<right and not s[right].isalnum():
                right = right - 1
            if s[left].lower() != s[right].lower():
                return False
            left = left + 1
            right = right - 1
        return True

相关文章

  • LeetCode125-验证回文串-Python实现

    题目难度: Easy题目描述:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明...

  • LeetCode | 0680. Valid Palindrom

    LeetCode 0680. Valid Palindrome II验证回文字符串 Ⅱ【Easy】【Python】...

  • leecode刷题(15)-- 验证回文字符串

    leecode刷题(15)-- 验证回文字符串 验证回文字符串 给定一个字符串,验证它是否是回文串,只考虑字母和数...

  • Leetcode125-判断回文串

    回文串是一个典型的问题,比如abccba,12345654321都是回文串。设计的基本思路普通都是从两端向中间遍历...

  • Python实现常见的回文字符串算法

    回文 利用python 自带的翻转 函数reversed() 自己实现 最长的回文子串 暴力破解 暴力破解,枚举所...

  • 关于回文问题

    回文问题的解法:双指针,栈,reverse 1. 409. 最长回文串[✔]2. 125. 验证回文串[✔]3. ...

  • LeetCode125 验证回文串

    LeetCode125 验证回文串 题目描述: 代码:

  • 验证回文串

    给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义...

  • 验证回文串

    题目 难度级别:简单 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题...

  • 验证回文串

    题目 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串...

网友评论

    本文标题:LeetCode125-验证回文串-Python实现

    本文链接:https://www.haomeiwen.com/subject/qllryqtx.html