LeetCode Valid Palindrom

来源:互联网 发布:网络进度计划波浪线 编辑:程序博客网 时间:2024/06/06 02:36

LeetCode解题之Valid Palindrom


原题

判断一个字符串是否是回文字符串,只考虑字母和数字,并且忽略大小写。

注意点:

  • 空字符串在这里也定义为回文串

例子:

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

输出: True

输入: s = “race a car”

输出: False

解题思路

先将字符串中的非字母和数字的字符去除,同时把所有的字母转换为小写,再判断新的字符串与自己翻转的字符串是否相等。这种方法代码比较简练,也可以采用双指针的方法从两端开始遍历数列来进行判断。

AC源码

class Solution(object):    def isPalindrome(self, s):        """        :type s: str        :rtype: bool        """        alphanumericS = [c for c in s.lower() if c.isalnum()]        return alphanumericS == alphanumericS[::-1]if __name__ == "__main__":    assert Solution().isPalindrome("A man, a plan, a canal: Panama") == True    assert Solution().isPalindrome("race a car") == False

欢迎查看我的Github (https://github.com/gavinfish/LeetCode-Python) 来获得相关源码。

1 0
原创粉丝点击