列表

详情


125. 验证回文串

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

说明:本题中,我们将空字符串定义为有效的回文串。

 

示例 1:

输入: "A man, a plan, a canal: Panama"
输出: true
解释:"amanaplanacanalpanama" 是回文串

示例 2:

输入: "race a car"
输出: false
解释:"raceacar" 不是回文串

 

提示:

相似题目

回文链表

验证回文字符串 Ⅱ

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: bool isPalindrome(string s) { } };

golang 解法, 执行用时: 296 ms, 内存消耗: 8.8 MB, 提交时间: 2020-11-12 14:51:35

func isPalindrome(s string) bool {
    var sgood string
    for i := 0; i < len(s); i++ {
        if isalnum(s[i]) {
            sgood += string(s[i])
        }
    }

    n := len(sgood)
    sgood = strings.ToLower(sgood)
    for i := 0; i < n/2; i++ {
        if sgood[i] != sgood[n-1-i] {
            return false
        }
    }
    return true
}

func isalnum(ch byte) bool {
	return (ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z') || (ch >= '0' && ch <= '9')
}

python3 解法, 执行用时: 56 ms, 内存消耗: 14.7 MB, 提交时间: 2020-11-11 16:58:00

class Solution:
    def isPalindrome(self, s: str) -> bool:
        s = re.sub('[\W_]+', '', s.lower())
        return s == s[::-1]

python3 解法, 执行用时: 72 ms, 内存消耗: 14.7 MB, 提交时间: 2020-11-11 16:56:55

class Solution:
    def isPalindrome(self, s: str) -> bool:
        s = re.sub('[\W_]+', '', s.lower())
        s1 = list(s)
        s1.reverse()
        return s == ''.join(s1)

上一题