Принцип работы рекурсии в алгоритме проверки палиндрома - 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. }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д