008 · Valid Palindrome

algorithm
Published

April 24, 2026

Problem

给定一个字符串 s

如果在将所有大写字母转换为小写字母,并移除所有非字母数字字符之后,字符串正着读和反着读都相同,则称该字符串为 palindrome。

如果 s 是 palindrome,返回 true;否则返回 false

Examples

示例 1

Input:  s = "A man, a plan, a canal: Panama"
Output: true

解释:处理后字符串为 amanaplanacanalpanama,正读和反读都相同。

示例 2

Input:  s = "race a car"
Output: false

解释:处理后字符串为 raceacar,正读和反读不相同。

示例 3

Input:  s = " "
Output: true

解释:移除非字母数字字符后,字符串为空串。空串视为有效 palindrome。

Constraints

  • \(1 \leq\) s.length \(\leq 2 \times 10^5\)
  • s 仅由可打印 ASCII 字符组成