Напечатать слова последовательности, отличных от первого слова и не содержащих повторяющихся букв - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1 до 8 строчных латинских букв; между соседними словами - не менее одного пробела, за последним словом - точка. Напечатать те слова последовательности, которые отличны от первого слова и удовлетворяют следующему свойству: в слове нет повторяющихся букв. Помогите пожалуйста))) код нужен на паскале

Решение задачи: «Напечатать слова последовательности, отличных от первого слова и не содержащих повторяющихся букв»

textual
Листинг программы
begin
  var st := ReadString('Введите строку'); // 'hello    world rell reil     hello.';
  var arr := st.Split(' .,!?:;''"/=<>{}[]()-+'.ToCharArray(), System.StringSplitOptions.RemoveEmptyEntries).ToArray();
  writeln(string.Join(' ', arr.Where(s -> (s <> arr[0]) and (s.ToCharArray().GroupBy(ch -> ch).Where(y -> y.Count() > 1).Count() = 0))));
end.

Объяснение кода листинга программы

  1. Вводится строка с помощью функции ReadString.
  2. Строка разделяется на массив строк с помощью метода Split, где разделителями являются пробел, точка, запятая, восклицательный знак, двоеточие, кавычки, знак равенства, знак неравенства, знак меньше, знак больше, скобки и тире.
  3. Метод ToCharArray преобразует строку в массив символов.
  4. Группировка символов осуществляется с помощью метода GroupBy.
  5. Отображаются строки, которые не равны первому слову и не содержат повторяющихся букв, с помощью метода Where и функции Count.
  6. Результат выводится на экран с помощью функции writeln.

Оцени полезность:

15   голосов , оценка 4 из 5
Похожие ответы