leetcode 125

判断是否为回文字符串

    def onlyNumOrChar(self,s):
        l=list()
        s=s.lower()
        for i in s:
            if i in 'abcdefghijklmnopqrstuvwxyz0123456789':
                l.append(i)
        return ''.join(l)
    def isPalindrome(self, s):
        """
        :type s: str
        :rtype: bool
        """
        s=self.onlyNumOrChar(s)
        if s==s[::-1]:
            return True
        return False

    def isPalindrome_2(self,s):
        i,j=0,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 s[i].lower()!= s[j].lower():
                return False
            i+=1
            j-=1
        return True

第一种方法先对字符串进行了处理,第二种比较好(两个指针)。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容