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

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

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

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

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

textual
Листинг программы
begin
  var s := ReadLnString;
  var z := 0; var x := 0;
  for var i := 1 to s.Length do
    if s[i] = #48 then
      x += 1
    else if x > z then z := x;
  var p : String := '1';
  for var i := 1 to z + 1 do
    begin
      p += '1'; for var d := 1 to i do p+= '0';
    end;
  p += '1';
  WriteLn(Pos(s, p));
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
Похожие ответы