Напечатать слова последовательности, отличных от первого слова и не содержащих повторяющихся букв - 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.