125. 验证回文串

难度:简单
题目描述:
125. 验证回文串_第1张图片
思路总结:我的思路很简单直接,就是先转换为小写,然后两头指针循环进行判断,时间复杂度O(n*62),应该还是O(n)。开销主要是判断是否是字母数字这个函数isalnum()。题解二给看一个前0.1%的大神一行写法。
题解一:

class Solution:
    def isPalindrome(self, s: str) -> bool:
        s = s.lower()
        l,r = 0,len(s)-1
        while l < r:
            while l < r and not s[l].isalnum():
                l += 1
            while l < r and not s[r].isalnum():
                r -= 1
            if s[l] != s[r]:
                return False
            else:
                l += 1
                r -= 1
        return True
            

题解一结果:
125. 验证回文串_第2张图片
题解二:

class Solution:
    def isPalindrome(self, s: str) -> bool:
        pureStr = ''.join(filter(str.isalnum, s)).lower()
        return pureStr == pureStr[::-1]

题解二结果:32ms,超过了99.9%。但是我提交后发现才56ms,应该是新增加了一些测试用例。

你可能感兴趣的:(朱滕威的面试之路)