美文网首页
验证回文串

验证回文串

作者: CoeusZ | 来源:发表于2019-02-28 14:39 被阅读0次

题目

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
示例 1:

输入: "A man, a plan, a canal: Panama"
输出: true

示例 2:

输入: "race a car"
输出: false

解题思路

我的思路 答案(一)
弄出一个有效的字符集,也就是包含所有的字母和数字;然后弄2个游标从整个字符串左边和右边依次移动一格,如果遇到不是有效集合的元素,就再移动一步。
在每次双向移动的过程中,判断指向的两个元素是否相等,如果不相等,那么就返回False。

别人思路 答案(二)
回文字符串,可以用到字符串反转的方法也就是str = str[::-1];
然后,判断是否是数字和字母也有一个方法str.isalnum()
因此,先将所有元素转换成小写,然后通过这个方法,将原始的字符串变成只包含字母和数字的,最后判断原字符串和反转字符串是否相等即可。

答案(一)

class Solution(object):
    def isPalindrome(self, s):
        """
        :type s: str
        :rtype: bool
        """
        if s == '':
            return True
        data_set = 'abcdefghijklmnopqrstuvwxyz0123456789'
        s = s.lower()
        index_s = 0
        index_e = len(s) - 1
        while index_s < index_e:
            while index_s < index_e:
                if s[index_s] not in data_set:
                    index_s += 1
                else:
                    break
            while index_s < index_e:
                if s[index_e] not in data_set:
                    index_e -= 1
                else:
                    break
            if index_s == index_e - 1:
                if s[index_s] not in data_set or s[index_e] not in data_set:
                    return True
                else:
                    if s[index_s] == s[index_e]:
                        return True
                    else:
                        return False
            if index_s < index_e and s[index_s] != s[index_e]:
                return False
            else:
                index_s += 1
                index_e -= 1

        return True

答案(二)

class Solution:
    def isPalindrome(self, s: str) -> bool:
        if not s:
            return True
        s = s.lower()
        s = [s[i] for i in range(len(s)) if s[i].isalnum()]
        return s==s[::-1]

相关文章

  • leecode刷题(15)-- 验证回文字符串

    leecode刷题(15)-- 验证回文字符串 验证回文字符串 给定一个字符串,验证它是否是回文串,只考虑字母和数...

  • 关于回文问题

    回文问题的解法:双指针,栈,reverse 1. 409. 最长回文串[✔]2. 125. 验证回文串[✔]3. ...

  • LeetCode125 验证回文串

    LeetCode125 验证回文串 题目描述: 代码:

  • 验证回文串

    给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义...

  • 验证回文串

    题目 难度级别:简单 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题...

  • 验证回文串

    题目 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串...

  • 验证回文串

    给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为...

  • LeetCode之验证回文串——JavaScript实现

    题目: 125. 验证回文串 描述: 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小...

  • 字符串问题合集

    1. 验证回文串 题目描述: 输入一个字符串,只关注字母和数字,判断字符串是否为回文串。空字符串也可以认为是回文串...

  • 「算法」验证回文串 & 回文链表

    00125 验证回文串 题目描述 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。...

网友评论

      本文标题:验证回文串

      本文链接:https://www.haomeiwen.com/subject/xsihuqtx.html