首页 > 其他 > 详细

LeetCode Valid Palindrom

时间:2016-04-10 16:24:46      阅读:217      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!