Skip to content

Instantly share code, notes, and snippets.

@andrewjkerr
Last active August 29, 2015 14:09
Show Gist options
  • Save andrewjkerr/be32ef6521f2d393d8ee to your computer and use it in GitHub Desktop.
Save andrewjkerr/be32ef6521f2d393d8ee to your computer and use it in GitHub Desktop.
Checks whether a string is a palindrome using recursion.
def palindrome str
str.split('')
if str.length <= 1
return true
elsif str.length == 2
return str[0] == str[1]
else
length = str.length
if str[0] == str[length-1]
return palindrome str[1..length-2]
else
return false
end
end
end
puts palindrome "" # => true
puts palindrome "racecar" # => true
puts palindrome "parking" # => false
puts palindrome "aa" # => true
puts palindrome "ab" # => false
puts palindrome "a" # => true
puts palindrome "aba" # => true
puts palindrome "abc" # => false
puts palindrome "1991" # => true
# Or just do it the right way...
def palindrome(str)
str == str.reverse
end
puts palindrome "" # => true
puts palindrome "racecar" # => true
puts palindrome "parking" # => false
puts palindrome "aa" # => true
puts palindrome "ab" # => false
puts palindrome "a" # => true
puts palindrome "aba" # => true
puts palindrome "abc" # => false
puts palindrome "1991" # => true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment