1. 程式人生 > 實用技巧 >135-125. 驗證迴文串

135-125. 驗證迴文串

給定一個字串,驗證它是否是迴文串,只考慮字母和數字字元,可以忽略字母的大小寫。(第二個不是我寫的其他的都兩個是我寫的)
class Solution(object):
    def isPalindrome1(self, s):
        """
        :type s: str
        :rtype: bool
        """
        length = len(s)
        i = 0
        j = length - i - 1
        while i <= j:
            while i <= j and not s[i].isalnum():
                i += 1

            while i <= j and not s[j].isalnum():
                j -= 1

            if i <= j and s[i].lower() != s[j].lower():
                return False
            j -= 1
            i += 1
        return True

    def isPalindrome2(self, s):
        """
        :type s: str
        :rtype: bool
        """
        s = s.lower()
        result = ''.join(filter(str.isalnum, s)).lower()
        return result == result[::-1]

    def isPalindrome(self, s):
        """
        :type s: str
        :rtype: bool
        """
        i = 0
        j = len(s) - 1
        while i < j:
            while i < j and not s[i].isalnum():
                i += 1

            while i < j and not s[j].isalnum():
                j -= 1

            if i < j and s[i].lower() != s[j].lower():
                return False
            j -= 1
            i += 1
        return True


if __name__ == '__main__':
    s = Solution()
    s1 = ".,"
    print(s.isPalindrome(s1))