Я могу помочь вам проверить, является ли строка палиндромом, используя рекурсию в C#. Вот пример:
using System;
public class PalindromeChecker
{
public static bool IsPalindrome(string str)
{
// Remove non-alphanumeric characters and convert to lowercase
string cleanStr = new string(str.ToLower().ToCharArray()
.Where(c => Char.IsLetterOrDigit(c)).ToArray());
return IsPalindromeRecursive(cleanStr, 0, cleanStr.Length - 1);
}
private static bool IsPalindromeRecursive(string str, int start, int end)
{
if (start >= end)
return true;
if (str[start] != str[end])
return false;
return IsPalindromeRecursive(str, start + 1, end - 1);
}
public static void Main(string[] args)
{
string input = "A man, a plan, a canal: Panama";
if (IsPalindrome(input))
Console.WriteLine("The string is a palindrome.");
else
Console.WriteLine("The string is not a palindrome.");
}
}
Этот код определяет класс PalindromeCheckerсо статическим методом IsPalindrome, который принимает строку в качестве входных данных и возвращает true, если это палиндром и falseв противном случае. Метод IsPalindromeсначала очищает входную строку, удаляя небуквенно-цифровые символы и преобразуя ее в нижний регистр. Затем он вызывает частный рекурсивный метод IsPalindromeRecursive, чтобы проверить, является ли строка палиндромом.
В методе IsPalindromeRecursiveфункция проверяет, равны ли символы в начальной и конечной позициях. Если это не так, возвращается false. Если они равны, он рекурсивно вызывает себя, при этом начальная позиция увеличивается на 1, а конечная позиция уменьшается на 1. Этот процесс продолжается до тех пор, пока начальная позиция не станет больше или равна конечной позиции, после чего он возвращает true, чтобы указать, что строка является палиндромом.
Чтобы использовать этот код, вы можете создать экземпляр класса PalindromeCheckerи вызвать метод IsPalindrome, передав строку, которую вы хотите проверить, в качестве аргумента. В приведенном выше примере входная строка — «Человек, план, канал: Панама», которая является палиндромом, поэтому выходная строка — «Эта строка является палиндромом».