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

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

  1. Объявлены переменные: s, smx (строки), n, i, j, k, max, imx (байты), m (множество символов).
  2. Ввод количества строк от 2 до 20 с помощью цикла repeat-until и readln(n).
  3. Цикл for i:=1 to n для чтения строк.
  4. Внутри цикла для каждой строки: а) Создание пустого множества m для хранения уникальных символов текущей строки. б) Цикл for j:=1 to length(s) для прохода по каждому символу строки. в) Проверка, является ли символ уникальным для строки (не входит в множество m). г) Если символ уникален, то он добавляется в множество m и увеличивается счетчик k. д) Если k больше максимального значения, то обновляются значения максимального значения и строки-рекордсмена.
  5. Вывод сообщения о строке с наибольшим количеством уникальных символов.
  6. Вывод самой строки с помощью writeln(smx).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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