LeetCode: Valid Palindrome

Question

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

Solution#1

def is_palindrome(s)
  stripped_string = s.scan(/[a-zA-Z]|\d/).join.downcase
  stripped_string == stripped_string.reverse
end

Solution#2

def is_palindrome(s)
    s.downcase!
    s.gsub!(/[^0-9A-Za-z]/, '')
    rs = s.reverse
    rs == s ? true : false
end