Даны два целочисленных массива А и B размерностью N и M соответственно. Определить, является ли один из них подмассивом другого. Если да, то какой и начиная с какой позиции числа совпадают.
Для решения данной задачи можно использовать следующий алгоритм:
Пройти циклом по массиву А с шагом индекса 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.
Для решения данной задачи можно использовать следующий алгоритм:
Пройти циклом по массиву А с шагом индекса 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.