class Solution {
public:
bool isPalindrome(string s) {
}
};
剑指 Offer II 018. 有效的回文
给定一个字符串 s
,验证 s
是否是 回文串 ,只考虑字母和数字字符,可以忽略字母的大小写。
本题中,将空字符串定义为有效的 回文串 。
示例 1:
输入: s = "A man, a plan, a canal: Panama" 输出: true 解释:"amanaplanacanalpanama" 是回文串
示例 2:
输入: s = "race a car" 输出: false 解释:"raceacar" 不是回文串
提示:
1 <= s.length <= 2 * 105
s
由 ASCII 字符组成
注意:本题与主站 125 题相同: https://leetcode.cn/problems/valid-palindrome/
原站题解
python3 解法, 执行用时: 60 ms, 内存消耗: 16.6 MB, 提交时间: 2022-06-02 15:52:19
class Solution: def isPalindrome(self, s: str) -> bool: s = re.sub(r'[^a-zA-Z0-9]', '', s).lower() return s == s[::-1]
golang 解法, 执行用时: 192 ms, 内存消耗: 8.8 MB, 提交时间: 2022-06-02 15:48:13
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') }