с клавиатуры вводится произвольная строка символов.Группы символов, разделенные пробелами и не имеющие пробелов внутри, будем называть словами. - вопрос №2014389
Написать программу, которая удаляет все слова с нечетными номерами. Вывести полученную строку на экран. Длина строки не более 100 символов.
например:
Исходная строка: «Пример исходной строки о словами»
Результат: «исходной со»
Решение, быть может и не тривиальное, но за 5 баллов ломать голову, как это сделать «по-школьному» мне не захотелось. Да и не требовалось по условию… даже язык программирования не был указан.
// PascalABC.NET 3.1, сборка 1256 от 21.06.2016
begin
var s:=ReadlnString('>');
var m:=s.Matches('(\S+)').Select(x->(x.Index+1,x.Value.Length));
// получили последовательность элементов вида <позиция><длина>,
// отражающих положение слов в строке.
var n:=m.Count; // количество слов
if n.IsEven then Dec(n);
while n>0 do begin
var e:=m.ElementAt(n-1);
Delete(s,e.Item1,e.Item2);
Dec(n,2)
end;
Writeln(s)
end.
Тестовое решение
> Карл у Клары украл кораллы Клара у Карла украла кларнет
у украл Клара Карла кларнет