> For the complete documentation index, see [llms.txt](https://lex47.gitbook.io/leetcode/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lex47.gitbook.io/leetcode/leet-solution-ruby/125.md).

# 125. Valid Palindrome

Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.

**Note:** For the purpose of this problem, we define empty string as valid palindrome.

**Example 1:**

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

**Example 2:**

```
Input: "race a car"
Output: false
```

**Constraints:**

* `s` consists only of printable ASCII characters.

```
# @param {String} s
# @return {Boolean}
def is_palindrome(s)
  s = s.downcase.delete("^/a-z0-9/")
  s == s.reverse
end
```
