Принцип работы рекурсии в алгоритме проверки палиндрома - 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.
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.077 из 5
Похожие ответы