C# Exercise: 131 Function Palindrome, recursive

In this exercise in C#, you will need to create a recursive function to check if a string is symmetric (a palindrome). A palindrome is a word, number, phrase, or other sequence of characters that reads the same forward and backward. For example, "RADAR" is a palindrome. This exercise in C# will help you enhance your skills with recursive functions and string manipulation. In this case, recursion will allow you to compare characters from both ends of the string, gradually reducing the size of the problem until it determines whether the string is a palindrome or not. In this exercise, you will learn how to apply recursion in C# to solve problems elegantly and efficiently.

By completing this exercise, you will be able to implement recursive functions that handle strings and other data structures in your programs, thereby gaining a deeper understanding of how to work with recursion in C#.

 Lesson

Functions

 Exercise

Function Palindrome, recursive

 Objetive

Write a C# recursive function to say whether a string is symmetric (a palindrome). For example, "RADAR" is a palindrome.

 Example Code

// Import the System namespace to use basic classes like Console
using System;

class Program
{
    // Recursive function to check if a string is a palindrome (symmetric)
    public static bool Palindrome(string str)
    {
        // Convert the string to uppercase to make the comparison case-insensitive
        str = str.ToUpper();

        // Base case: if the string has one or zero characters, it's a palindrome
        if (str.Length <= 1)
        {
            return true;
        }

        // Compare the first and last characters
        if (str[0] != str[str.Length - 1])
        {
            return false; // If they are not equal, it's not a palindrome
        }

        // Recur with the substring excluding the first and last characters
        return Palindrome(str.Substring(1, str.Length - 2));
    }

    // Main function to test the Palindrome function
    public static void Main()
    {
        // Test case 1: "RADAR"
        string testString1 = "RADAR";
        Console.WriteLine($"Is \"{testString1}\" a palindrome? {Palindrome(testString1)}");

        // Test case 2: "HELLO"
        string testString2 = "HELLO";
        Console.WriteLine($"Is \"{testString2}\" a palindrome? {Palindrome(testString2)}");

        // Test case 3: "madam"
        string testString3 = "madam";
        Console.WriteLine($"Is \"{testString3}\" a palindrome? {Palindrome(testString3)}");
    }
}

More C# Exercises of Functions

 Functions: greeting + farewell
Write a C# program whose Main must be like this: public static void Main() { SayHello(); SayGoodbye(); } SayHello and SayGoodbye are functio...
 Function with parameters
Write a C# program whose Main must be like this: public static void Main() { SayHello("John"); SayGoodbye(); } SayHello and SayGoodbye are f...
 Function returning a value
Write a C# program whose Main must be like this: public static void Main() { int x= 3; int y = 5; Console.WriteLine( Sum(x,y) ); } "Sum" is...
 Function returning a value V2
Write a C# program whose Main must be like this: public static void Main() { __Console.WriteLine("\"Hello, how are you\" contains {0} spaces", __...
 Function write centered
Write a C# function to write centered on screen the text that is indicated as a parameter (supposing a screen width of 80 characters): WriteCentere...
 Function write underlined
Write a C# function able to write centered on screen the text that is indicated as a parameter (supposing a screen width of 80 characters) and then un...
 Function sum of array
Write a C# program to calculate the sum of the elements in an array. "Main" should be like this: public static void Main() { int[] example = {20, ...
 Function double
Write a C# function named "Double" to calculate and return an integer number doubled. For example. Double(7) should return 14....
 Function Double reference parameter
Write a C# function named "Double" to calculate the double of an integer number, and modify the data passed as an argument. It must be a "void" functi...
 Function swap reference parameters
Write a C# function named "Swap" to swap the values of two integer numbers, which are passed by reference. An example of use might be: int x=5, ...
 Function power local variables
Write a C# function named "Power" to calculate the result of raising an integer number to another (positive integer) number. It must return another in...
 Function recursive power
Write a C# function that calculates the result of raising an integer to another integer (eg 5 raised to 3 = 53 = 5 × 5 × 5 = 125). This function must ...
 Function Fibonacci
Write a C# program that uses recursion to calculate a number in the Fibonacci series (in which the first two items are 1, and for the other elements, ...
 Function modify a letter in a string
Write a C# function named "ChangeChar" to modify a letter in a certain position (0 based) of a string, replacing it with a different letter: string...
 Function IsPrimeTarea
Write a C# function named "IsPrime", which receives an integer number and retuns true if it is prime, or false if it is not: if (isPrime(127)) ......
 Function Parameters of Main, Sum
Write a C# program named "sum", which receives two integer numbers in the command line and displays their sum, as in this example: sum 5 3 8...
 Function SumDigits
Write a C# function SumDigits that receives a number and returns any results in the sum of its digits. For example, if the number is 123, the sum woul...
 Function Factorial
The factorial of a number is expressed as follows: n! = n · (n-1) · (n-2) · (n-3) · ... · 3 · 2 · 1 For example, 6! = 6·5·4·3·2·1 Create a r...
 Function Parameters of Main, Reverse
Write a C# program named "reverse", which receives several words in the command line and displays them in reverse order, as in this example: revers...
 Function GetInt
Write a C# function named "GetInt", which displays on screen the text received as a parameter, asks the user for an integer number, repeats if the num...
 Function tasks database
Write in C# an improved version of the "tasks database", splitting it into functions....
 Function Greatest value in a array
Write a C# function which returns the greatest value stored in an array of real numbers which is specified as parameter: float[] data={1.5f, 0.7f, ...
 Function factorial (iterative)
Write an C# iterative (non-recursive) function to calculate the factorial of the number specified as parameter: Console.Write ( Factorial (6) ); ...
 Function WriteTitle
Write a C# function named "WriteTitle" to write a text centered on screen, uppercase, with extra spaces and with a line over it and another line under...
 Function return value for Main
Write a C# program in which you write a title (using the previous WriteTitle function) which the user will specify in command line. If no text is spec...
 Function CountDV
Write a C# function that calculates the amount of numeric digits and vowels that a text string contains. It will accept three parameters: the string t...
 Function IsAlphabetic
Write a C# function that tells if a character is alphabetic (A through Z) or not. It should be used like this: if (IsAlphabetic ("a")) System.Cons...
 Function IsNumber
Write a C# function that tells if a string is an intenger number. It should be used like this: if (IsNumber ("1234")) System.Console.WriteLine ("I...
 Function calculator, params of Main
Write a C# program to calculate a sum, subtraction, product or division, analyzing the command line parameters: calc 5 + 379 (Parameters must be...
 Function calculator, params and return value of Main
Write a C# program to calculate a sum, subtraction, product or division, analyzing the command line parameters: calc 5 + 379 (Parameters must be...
 Function MinMaxArray
Write a C# function named MinMaxArray, to return the minimum and maximum values stored in an array, using reference parameters: float[] data={1.5f,...
 Function Reverse, recursive
Write a C# program that uses recursion to reverse a string of characters (for example, from "Hello" it would return "olleH")....
 Function WriteRectangle
Write a C# function WriteRectangle to display a (filled) rectangle on the screen, with the width and height indicated as parameters, using asterisks. ...
 Function Palindrome, iterative
Write an C# iterative function to say whether a string is symmetric (a palindrome). For example, "RADAR" is a palindrome....
 Function GetMinMax
Write a C# function named "GetMinMax", which will ask the user for a minimum value (a number) and a maximum value (another number). It should be calle...
 Function Multiply & MultiplyR
Write two C# functions, Multiply and MultiplyR, to calculate the product of two numbers using sums. T he first version must be iterative, and the seco...