题目

September 7, 2017 · View on GitHub

给定一个字符串,判断这个字符串是不是回文。不考虑标点符合和空格以及大小写。

举例:

  • "A man, a plan, a canal: Panama" 是回文
  • "race a car" 不是回文

Note:

  • 对于空字符串,默认为回文。

思路

很简单,使用正则表达式匹配所有字母,并将其转换为小写字母。然后收尾比对,不一样就返回False。

代码

class Solution(object):
    def isPalindrome(self, s):
        """
        :type s: str
        :rtype: bool
        """
        s = re.findall('\w{1}', s.lower())
        s_len = int(len(s) / 2)
        for i in range(s_len):
            if s[i] != s[-(i+1)]:
                return False
        return True