Даны две строки: S1 и S2. Проверить, содержится ли строка S2 в строке S1. Если да, то вывести номер позиции, начиная с которой S2 содержится в S1, если нет, то вывести 0.
Ответы на вопрос
Самый простой способ — найти первое вхождение строки S2 в строку S1. Если оно найдено, нужно вывести позицию, но не забыть, что во многих языках программирования нумерация символов начинается с 0, а в задаче обычно требуется позиция с 1.
Например, на Python:
PythonS1 = input()
S2 = input()
pos = S1.find(S2)
if pos != -1:
print(pos + 1)
else:
print(0)
Разбор:
Pythonpos = S1.find(S2)
Метод find() ищет строку S2 внутри строки S1.
Если S2 содержится в S1, метод возвращает индекс первого символа найденного фрагмента. Например:
PythonS1 = "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, поэтому выводим:
Pythonpos + 1
То есть:
4
Если строка S2 не найдена, find() возвращает -1, и тогда нужно вывести 0.
Пример работы программы:
Ввод:
abracadabra
cada
Вывод:
5
Еще пример:
Ввод:
hello
abc
Вывод:
0
Можно также решить задачу без встроенного find(), перебирая все возможные позиции начала подстроки:
PythonS1 = 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 и цикл останавливается.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

