Ruby - Check if a String is a Palindrome

1. Introduction

A palindrome is a word, phrase, number, or other sequence of characters that reads the same forward and backward (ignoring spaces, punctuation, and capitalization). Checking for palindromic structures is a common task in programming and algorithms. In this tutorial, we'll examine how to determine if a given string is a palindrome using Ruby.

2. Program Steps

1. Accept a string from the user or define a string.

2. Convert the string to lowercase to ensure the check is case-insensitive.

3. Remove any non-alphanumeric characters from the string.

4. Compare the cleaned string with its reverse.

5. Output whether the string is a palindrome or not based on the comparison result.

3. Code Program

# Accept a string input
puts "Enter a string to check if it's a palindrome:"
input_string = gets.chomp
# Convert the string to lowercase and remove non-alphanumeric characters
cleaned_string = input_string.downcase.gsub(/[^a-z0-9]/, '')
# Check if the cleaned string is equal to its reverse
is_palindrome = cleaned_string == cleaned_string.reverse
# Output the result
puts "'#{input_string}' is #{is_palindrome ? '' : 'not '}a palindrome."

Output:

Enter a string to check if it's a palindrome:
Racecar
'Racecar' is a palindrome.

Explanation:

1. gets.chomp: This captures user input and removes any newline character at the end.

2. downcase: Converts the string to lowercase to ensure the palindrome check is case-insensitive.

3. gsub(/[^a-z0-9]/, ''): This method uses a regular expression to replace any non-alphanumeric characters with an empty string. This helps in eliminating punctuation, spaces, etc.

4. ==: Compares the cleaned string with its reverse to determine if they're equal.

5. is_palindrome ? '' : 'not ': Uses the ternary operator to output appropriate text based on the boolean value of is_palindrome.

With these steps, we can easily identify palindromic strings in Ruby, considering both case insensitivity and non-alphanumeric characters.


Comments