Python算法题----Valid P

发布时间:2019-07-13 11:37:12编辑:auto阅读(1525)

    Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.

    For example,
    "A man, a plan, a canal: Panama" is a palindrome.
    "race a car" is not a palindrome.

    class Solution(object):
        def check(self, s):
            if s.isdigit() or s.isalpha():
                return True
            return False
        
        def isPalindrome(self, s):
            """
            :type s: str
            :rtype: bool
            """
            s = s.lower()
            if not s or not s.strip():
                return True
            i, j = 0, len(s) - 1
            while i < j:
                while i < j and not self.check(s[i]):
                    i += 1
                while i < j and not self.check(s[j]):
                    j -= 1
                if s[j] != s[i]:
                    return False
                i += 1
                j -= 1
            return True


关键字