← 返回 Kata
EasyLeetCode2026-04-24原题 ↗

008Valid Palindrome

two-pointersstring

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

  • 11 \leq s.length 2×105\leq 2 \times 10^5
  • s 仅由可打印 ASCII 字符组成

最初怎么想、怎样补完整、最后如何落成。