码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode Valid Palindrom

时间:2016-04-10 16:25:48      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:

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) 来获得相关源码。

LeetCode Valid Palindrom

标签:

原文地址:http://blog.csdn.net/u013291394/article/details/51112773

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!