В наборе строк найти строку, содержащую больше всего различных символов - Pascal ABC
Формулировка задачи:
Задача на множества.
Вводится набор строк. Найти в нем строку, содержащую больше всего различных символов.
Решение задачи: «В наборе строк найти строку, содержащую больше всего различных символов»
textual
Листинг программы
var s,smx:string; n,i,j,k,max,imx:byte; m:set of char; begin repeat write('Введите количество строк от 2 до 20 n='); readln(n); until n in [2..20]; writeln('Введите строки'); max:=0; for i:=1 to n do begin readln(s); m:=[]; k:=0; for j:=1 to length(s)do if not(s[j] in m) then begin k:=k+1; m:=m+[s[i]]; end; if k>max then begin max:=k; smx:=s; end; end; writeln('больше всего разных символов в строке '); writeln(smx) end.
Объяснение кода листинга программы
- Объявлены переменные: s, smx (строки), n, i, j, k, max, imx (байты), m (множество символов).
- Ввод количества строк от 2 до 20 с помощью цикла repeat-until и readln(n).
- Цикл for i:=1 to n для чтения строк.
- Внутри цикла для каждой строки: а) Создание пустого множества m для хранения уникальных символов текущей строки. б) Цикл for j:=1 to length(s) для прохода по каждому символу строки. в) Проверка, является ли символ уникальным для строки (не входит в множество m). г) Если символ уникален, то он добавляется в множество m и увеличивается счетчик k. д) Если k больше максимального значения, то обновляются значения максимального значения и строки-рекордсмена.
- Вывод сообщения о строке с наибольшим количеством уникальных символов.
- Вывод самой строки с помощью writeln(smx).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д