Рекурсивная проверка палиндромов в C#: реализация проверки палиндромов с помощью рекурсии

Ниже приведен пример рекурсивной функции на C#, проверяющей, является ли данная строка палиндромом:

using System;

public class Program
{
    public static bool IsPalindrome(string str)
    {
        if (str.Length <= 1)
        {
            return true;
        }
        else if (str[0] != str[str.Length - 1])
        {
            return false;
        }
        else
        {
            return IsPalindrome(str.Substring(1, str.Length - 2));
        }
    }

    public static void Main(string[] args)
    {
        string input = "madam";
        bool isPalindrome = IsPalindrome(input);
        Console.WriteLine($"Is '{input}' a palindrome? {isPalindrome}");
    }
}

В этом коде функция IsPalindromeпроверяет, является ли данная строка strпалиндромом, сравнивая первый и последний символы. Если они не совпадают, возвращается false. Если они одинаковы, он рекурсивно вызывает себя с подстрокой, исключая первый и последний символы, пока длина подстроки не станет 0 или 1. Если длина равна 0 или 1, он возвращает trueкак это означает, что все символы были сравнены и оказались одинаковыми.

Это один из способов реализации рекурсивной проверки палиндромов в C#. Существуют и другие возможные реализации, но это должно стать хорошей отправной точкой.