Write a function named has_mirror_twice
that accepts two arrays of integers
$a1
and $a2
as parameters and returns true
if $a1
contains all the elements of $a2
in reverse order at
least twice (and false
otherwise).
For example, if $a2
stores the elements [1, 2, 3]
and $a1
stores the elements [6, 3, 2, 1, 4, 1, 3, 2, 1, 5]
, your function
should return true
.
Assume that both arrays passed to your function will have a length of at least 1.
This means that the shortest possible mirror will be of length 1, representing a single
element (which is its own mirror). A sequence that is a palindrome (the same forwards as
backwards) is considered its own mirror and should be included in your computations.
For example, if $a1
is [6, 1, 2, 1, 4, 1, 2, 1, 5]
and $a2
is [1, 2, 1]
, your function should return true
.
The two occurrences of the mirror might overlap, as shown in the fourth sample call below.
The following table shows some calls to your function and their expected results:
Arrays |
Returned Value |
$a1 = [6, 1, 2, 1, 3, 1, 3, 2, 1, 5]; $a2 = [1, 2]; |
has_mirror_twice($a1, $a2) returns true |
$a3 = [5, 8, 4, 18, 5, 42, 4, 8, 5, 5]; $a4 = [4, 8, 5]; |
has_mirror_twice($a3, $a4) returns false |
$a5 = [6, 3, 42, 18, 12, 5, 3, 42, 3, 42]; $a6 = [42, 3]; |
has_mirror_twice($a5, $a6) returns true |
$a7 = [6, 1, 2, 4, 2, 1, 2, 4, 2, 1, 5]; $a8 = [1, 2, 4, 2, 1]; |
has_mirror_twice($a7, $a8) returns true |
$a9 = [0, 0]; $aa = [0]; |
has_mirror_twice($a9, $aa) returns true |
$ab = [8, 9, 2, 1]; $ac = [5, 7, 1, 2, 9, 8]; |
has_mirror_twice($ab, $ac) returns false |
Do not modify the contents of either array passed to your function as parameters.