美文网首页
LeetCode 125. 验证回文串

LeetCode 125. 验证回文串

作者: 草莓桃子酪酪 | 来源:发表于2022-09-09 11:53 被阅读0次
    题目

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

    例:
    输入: "A man, a plan, a canal: Panama"
    输出:true
    解释:"amanaplanacanalpanama" 是回文串。

    方法一:暴力解法
    class Solution(object):
        def isPalindrome(self, s):
            letter = [chr(i) for i in range(97, 123)]
            number = [str(i) for i in range(10)]
            s = s.lower()
            arr = []
            for i in range(len(s)):
                if s[i] in letter or s[i] in number:
                    arr.append(s[i])
            left, right = 0, len(arr)-1
            while left < right:
                if arr[left] != arr[right]:
                    return False
                left += 1
                right -= 1
            return True
    
    方法二:API
    class Solution:
        def isPalindrome(self, s: str) -> bool:
            sgood = "".join(ch.lower() for ch in s if ch.isalnum())
            return sgood == sgood[::-1]
    
    相关知识
    • isalnum: str.isalnum()
      检测字符串是否由字母和数字组成

    • 切片: object[start:end:step]
      start:切片的起始位置,如果没有值的话从头开始
      end:切片的结束位置,但不包含end(前闭后开),如果没有值的话表示切割到结束为止.
      step:步长,默认取值为1,如果步长为正数的情况表示从左往右,反正若为负数则表示从右往左.

    参考

    代码相关:https://leetcode.cn/problems/valid-palindrome/solution/yan-zheng-hui-wen-chuan-by-leetcode-solution/
    切片:https://blog.csdn.net/Zombie_QP/article/details/125063501

    相关文章

      网友评论

          本文标题:LeetCode 125. 验证回文串

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