Часть 1. Поиск подстроки в строке. Простейший алгоритм
Описание Для пояснения привожу и рассматриваю (см. ниже) код программы Find_Pos_Substring - поиск номера позиции вхождения подстроки (Pascal). Функция Find ищет в строке S подстроку P и возвращает индекс первого
символа вхождения или число "0", если подстрока не найдена. Этот метод, как и большинство методов "грубой силы", применительно к олимпиадным задачам, малоэффективен. Однако не стоит забывать, что и уровень проводимых олимпиад (как и требования, предьявляемые к решению конкретной задачи) различный: школьные, районные, ..., международные и др., а значит и этот алгоритм может быть востребован
Исходный код программы
program Find_Pos_Substring; var p,s: string; result: integer;
function Find(const S, P : String) : Integer; var i, j : Integer; begin Result := 0; if Length(P) > Length(S) then Exit; for i := 1 to Length(S) - Length(P) + 1 do for j := 1 to Length(P) do if P[j] <> S[i+j-1] then Break else if j = Length(P) then begin Result := i; Exit; end; end;
Begin readln(S); readln(P); Find (S,P); writeln (Result); End.