Вывести самое короткое и длинное слово в предложении - C#
Формулировка задачи:
using System;
using System.Linq;
class Demo
{
static void Main()
{
string str = "За двумя зайцами погонишься - ни одного кабана не поймаешь.";
char[] separators = { ' ', '.', ',', '-' };
var words = str.Split(separators, StringSplitOptions.RemoveEmptyEntries)
.OrderBy(n => n.Length).GroupBy(n => n.Length);
var min = words.First();
var max = words.Last();
Console.WriteLine("Input: " + str);
Console.Write("\nMin words: ");
foreach (var i in min)
Console.Write(i + " ");
Console.Write("\nMax words: ");
foreach (var i in max)
Console.Write(i + " ");
Console.WriteLine();
}
}Решение задачи: «Вывести самое короткое и длинное слово в предложении»
textual
Листинг программы
var s = "введите строку-предложение на русском языке. Вывести самое короткое1|длинное2 слово в предложении (если таких слов несколько, то вывести первое3|последнее4 из них).";
s = new string(s.Where(x => (x > 'А' && x < 'я') || (x == ' ') || (x == '-')).ToArray());
var words = s.Split(' ');
words = words.Where(x=>x.Length > 0).ToArray();
var _min = words.Aggregate(words[0], (min, cur) => min.Length < cur.Length ? min : cur);
var _max = words.Aggregate(words[0], (max, cur) => max.Length > cur.Length ? max : cur);