.NET 4.x Рекурсивная функция - C#
Формулировка задачи:
Всем привет, ребята помогите пж решить задачу. За ранние спс.
написать рекурсивную функцию, которая на вход получает строку, а выводит на экран (или возвращает) символы, входящие в строку, в следующем порядке: 1) сначала гласные, потом согласные. 2) сначала символы в верхнем регистре, потом в нижнем
Решение задачи: «.NET 4.x Рекурсивная функция»
textual
Листинг программы
using System; using System.Linq; namespace ConsoleApp23 { class Program { static void Main(string[] args) { var str = "В чащах югА жил бы цитрус? Да, но фальшивый экземпляр!"; var a = new char[] { 'а', 'о', 'и', 'й', 'е', 'ё', 'э', 'ы', 'у', 'ю', 'я' }; var b = new char[] { 'б', 'в', 'г', 'д', 'ж', 'з', 'й', 'к', 'л', 'м', 'н', 'п', 'р', 'с', 'т', 'ф', 'х', 'ц', 'ч', 'ш', 'щ' }; Func<string, string, string> recurse = null; recurse = (source, current) => { var index = -1; for (var i = 0; i < source.Length; i++) { if (a.Contains(char.ToLower(source[i])) && char.IsUpper(source[i])) index = i; else if (a.Contains(char.ToLower(source[i])) && index == -1) index = i; } if (index == -1) { for (var i = 0; i < source.Length; i++) { if (b.Contains(char.ToLower(source[i])) && char.IsUpper(source[i])) index = i; else if (b.Contains(char.ToLower(source[i])) && index == -1) index = i; } } if (index != -1) { current += source[index]; source = source.Remove(index, 1); return recurse(source, current); } source = string.Join("", source.Where(x => b.Contains(x))); //очищаем строку от символов не указанных в массивах current += source; return current; }; Console.WriteLine(recurse(str, "")); Console.ReadKey(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д