Даны два целочисленных массива А и B размерностью N и M соответственно. Определить, является ли один из них подмассивом другого. Если да, то какой и начиная с какой позиции числа совпадают.

12 Дек 2019 в 19:54
138 +1
0
Ответы
1

Для решения данной задачи можно использовать следующий алгоритм:

Пройти циклом по массиву А с шагом индекса i от 0 до N-M.На каждой итерации цикла проверить, совпадает ли подмассив массива А, начиная с позиции i и длиной M, с массивом B. Если подмассивы совпадают, то массив B является подмассивом массива A и начинается с позиции i.Если после завершения цикла совпадений не найдено, то массивы не являются подмассивами друг друга.

Пример кода на языке Python:

def check_subarray(A, B):
N = len(A)
M = len(B)
for i in range(N - M + 1):
if A[i:i+M] == B:
return i
return -1
A = [1, 2, 3, 4, 5, 6, 7, 8]
B = [5, 6, 7]
result = check_subarray(A, B)
if result != -1:
print("Массив B является подмассивом массива A, начиная с позиции", result)
else:
print("Массивы не являются подмассивами друг друга")

В данном примере функция check_subarray ищет подмассив B в массиве A и возвращает индекс начала совпадения, если таковое имеется. Если совпадение не найдено, функция возвращает -1.

18 Апр в 23:36
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 83 913 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир