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