Описать логическую функцию, проверяющую, является ли симметричной часть строки - C#
Формулировка задачи:
Описать методы для выполнения следующих заданий двумя способами: через цикл и используя механизм рекурсии
Описать логическую функцию simm (s, i, j), проверяющую, является ли симметричной часть строки s, начинающаяся i-м и заканчивающаяся j-м её элементами.
Решение задачи: «Описать логическую функцию, проверяющую, является ли симметричной часть строки»
textual
Листинг программы
static bool IsSymmetricRec(string s, int start, int end)
{
if(start < 0 || end >= s.Length || start > end)
throw new ArgumentException();
return s[start] == s[end] && (end - start <= 1 || IsSymmetricRec(s, ++start, --end));
}
static bool IsSymmetricLoop(string s, int start, int end)
{
if (start < 0 || end >= s.Length || start > end)
throw new ArgumentException();
while (start < end)
if (s[start++] != s[end--])
return false;
return true;
}