Принцип работы рекурсии в алгоритме проверки палиндрома - C#
Формулировка задачи:
Имеется не большой код на проверку слова(является ли оно палиндромом).Немного не понимаю,как программа запоминает,что был false в конце.Мне почему-то кажется,что они перезаписываются вечно.Немного не понимаю,что программа делает со всеми полученными tru и false(если таковые есть)
static void Main(string[] args)
{
string s = "acbeca";
bool b = palindrom(s);
string vs = b.ToString();
Console.WriteLine(vs);
Console.ReadKey();
}
public static bool palindrom(string s)
{
if (s.Length == 0) return true;
bool f = palindrom(s.Substring(1, s.Length - 2));
return f & (s[0] == s[s.Length - 1]);
}Решение задачи: «Принцип работы рекурсии в алгоритме проверки палиндрома»
textual
Листинг программы
public static bool palindrom(string s)
{
if (s.Length == 0) return true; //тут по-моему надо проверять еще на 1, не только на 0
bool f = palindrom(s.Substring(1, s.Length - 2)); //в этой строке метод вызывает сам себя для входной строки строки, у которой с обоих сторон обрезано по букве
return f & (s[0] == s[s.Length - 1]); //если эти самые обрезанные буквы равны и предыдущий метод вернул true(то есть каждая пара букв, если их обрезать с разных сторон, была равна), то возвращает true. Иначе-false.
}