Напечатать слова последовательности, отличных от первого слова и не содержащих повторяющихся букв - 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.
Объяснение кода листинга программы
- Вводится строка с помощью функции
ReadString
. - Строка разделяется на массив строк с помощью метода
Split
, где разделителями являются пробел, точка, запятая, восклицательный знак, двоеточие, кавычки, знак равенства, знак неравенства, знак меньше, знак больше, скобки и тире. - Метод
ToCharArray
преобразует строку в массив символов. - Группировка символов осуществляется с помощью метода
GroupBy
. - Отображаются строки, которые не равны первому слову и не содержат повторяющихся букв, с помощью метода
Where
и функцииCount
. - Результат выводится на экран с помощью функции
writeln
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д