Write a function named contains
that accepts two arrays of integers a1 and a2 along with their lengths as parameters and that returns a boolean value indicating whether or not a2's sequence of elements appears in a1 (true
for yes, false
for no).
The sequence of elements in a2 may appear anywhere in a1 but must appear consecutively and in the same order.
For example, if variables called a1
and a2
store the following values:
int a1[] = {1, 6, 2, 1, 4, 1, 2, 1, 8};
int a2[] = {1, 2, 1};
Then the call of contains(a1, 9, a2, 3)
should return true
because a2
's sequence of values {1, 2, 1}
is contained in a1
starting at index 5
.
If a2
had stored the values {2, 1, 2}
, the call of contains(a1, 9, a2, 3)
would return false
because a1
does not contain that sequence of values.
Any two arrays with identical elements are considered to contain each other, so a call such as contains(a1, a1)
should return true
.
You may assume that both arrays passed to your function will have lengths of at least 1.
You may not use any strings to help you solve this problem.