Easy 125. Valid Palindrome
In this blog I will share a solution to the Valid Palindrome problem.
題目連結
難度:Easy
給定一個字串,判斷它是否是回文。判斷規則如下:Example 2:
- 忽略大小寫(例如:'A' 和 'a' 視為相同)
- 只考慮字母和數字
- 空字串或只有空格的字串都算是回文
限制
- 1 <= s.length <= 2 * 10^5
- s 只包含大小寫英文字母、數字和空格
String
Two Pointers
解題思路
這題可以用「雙指針」的方式來解決,步驟如下:
- 清理字串
- 使用雙指針比較
程式碼
程式碼說明
- 錯誤處理
- 使用 optional chaining (
?.
) 處理 null/undefined - 使用 nullish coalescing (
??
) 提供預設值
- 使用 optional chaining (
- 程式碼可讀性
- 使用解構賦值讓程式碼更簡潔
- 加入適當的註解說明邏輯
- 使用 early return pattern
- 效能考量
- 避免重複計算字串長度
- 使用解構賦值一次更新兩個指針
解題心得
- 雙指針技巧
- 適合處理回文、排序等問題
- 可以有效減少迴圈次數
- 字串處理技巧
- 正則表達式是處理字串的好工具
- 善用 ES6+ 的字串方法
::