Определить вхождение последовательности в последовательность - PascalABC.NET

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

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

Дана последовательность: 110100100010000100000... Написать программу, определяющую по заданной последовательности нулей и единиц, входит ли она в последовательность, если да, то с какой по счёту цифры. Пример входных данных 1001 Пример выходных данных: 4 Умоляю о помощи!

Решение задачи: «Определить вхождение последовательности в последовательность»

textual
Листинг программы
  1. begin
  2.   var s := ReadLnString;
  3.   var z := 0; var x := 0;
  4.   for var i := 1 to s.Length do
  5.     if s[i] = #48 then
  6.       x += 1
  7.     else if x > z then z := x;
  8.   var p : String := '1';
  9.   for var i := 1 to z + 1 do
  10.     begin
  11.       p += '1'; for var d := 1 to i do p+= '0';
  12.     end;
  13.   p += '1';
  14.   WriteLn(Pos(s, p));
  15. end.

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

В этом коде:

  1. Считывается строка s с помощью функции ReadLnString.
  2. Инициализируются переменные z и x со значениями 0.
  3. Происходит цикл по символам строки s. Если текущий символ равен #48 (это символ '1' в кодировке Unicode), то значение переменной x увеличивается на 1. Если текущий символ не равен '1', и значение переменной x больше значения переменной z, то значение переменной z присваивается значение переменной x.
  4. Инициализируется переменная p со значением '1'.
  5. Происходит цикл по значениям переменной z + 1. Для каждого значения i из этого диапазона:
    • Переменная p дополняется символами '1'.
    • Происходит цикл по значениям от 1 до i. Для каждого значения d из этого диапазона:
      • Переменная p дополняется символами '0'.
  6. Переменная p дополняется символом '1'.
  7. Вызывается функция Pos для поиска первого вхождения подстроки p в строке s, и результат выводится на экран с помощью функции WriteLn.

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


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

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

6   голосов , оценка 3.833 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы