Найти в последовательности слов все слова максимальной длины - PascalABC.NET
Формулировка задачи:
Дана исследуемая последовательность непустых слов. Между соседними словами, стоит запятая - за последним точка.Написать все слова максимальной длин.
Решение задачи: «Найти в последовательности слов все слова максимальной длины»
textual
Листинг программы
begin
var b := ReadlnString('Введите последовательность: ').Split(',.'.ToCharArray(),System.StringSplitOptions.RemoveEmptyEntries).ToArray();
writeln(string.Join(NewLine, b.Where(t -> t.length = b.Max(s -> s.Length))));
end.
Объяснение кода листинга программы
В данном коде происходит следующее:
- Ввод последовательности слов с помощью функции ReadlnString, в которую передается строка
Введите последовательность:для отображения пользователю сообщения о том, что нужно ввести последовательность слов. - Введенная последовательность разбивается на слова с помощью метода Split, в который передается строка
,.для разделения последовательности на слова и параметр System.StringSplitOptions.RemoveEmptyEntries для удаления пустых элементов. - Полученный массив слов проходит через метод Where, в котором происходит фильтрация слов по длине, т.е. выбираются только слова максимальной длины.
- Результат фильтрации выводится на экран с помощью метода writeln и функции string.Join, которая объединяет выбранные слова в одну строку с символами новой строки между ними.