Вопрос задан 25.06.2026 в 08:47. Предмет Информатика. Спрашивает Прохорова Алена.

Даны две строки: S1 и S2. Проверить, содержится ли строка S2 в строке S1. Если да, то вывести номер позиции, начиная с которой S2 содержится в S1, если нет, то вывести 0.

Перейти к ответам

Ответы на вопрос

Отвечает Беликова Виктория.

Самый простой способ — найти первое вхождение строки S2 в строку S1. Если оно найдено, нужно вывести позицию, но не забыть, что во многих языках программирования нумерация символов начинается с 0, а в задаче обычно требуется позиция с 1.

Например, на Python:

Python
S1 = input()
S2 = input()

pos = S1.find(S2)

if pos != -1:
print(pos + 1)
else:
print(0)

Разбор:

Python
pos = S1.find(S2)

Метод find() ищет строку S2 внутри строки S1.

Если S2 содержится в S1, метод возвращает индекс первого символа найденного фрагмента. Например:

Python
S1 = "programming"
S2 = "gram"

Строка "gram" начинается с индекса 3, если считать с нуля:

p r o g r a m m i n g
0 1 2 3 4 5 6 7 8 9 10

Но по условию нужно вывести позицию, начиная с 1, поэтому выводим:

Python
pos + 1

То есть:

4

Если строка S2 не найдена, find() возвращает -1, и тогда нужно вывести 0.

Пример работы программы:

Ввод:

abracadabra
cada

Вывод:

5

Еще пример:

Ввод:

hello
abc

Вывод:

0

Можно также решить задачу без встроенного find(), перебирая все возможные позиции начала подстроки:

Python
S1 = input()
S2 = input()

answer = 0

for i in range(len(S1) - len(S2) + 1):
if S1[i:i + len(S2)] == S2:
answer = i + 1
break

print(answer)

Здесь программа по очереди проверяет все фрагменты строки S1 длиной len(S2). Если найден фрагмент, равный S2, сохраняется позиция i + 1 и цикл останавливается.

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос