760 Find Anagram Mappings
Given two listsA
andB
, andB
is an anagram ofA
.B
is an anagram ofA
meansB
is made by randomizing the order of the elements inA
.
We want to find anindex mappingP
, fromA
toB
. A mappingP[i] = j
means thei
th element inA
appears inB
at indexj
.
These listsA
andB
may contain duplicates. If there are multiple answers, output any of them.
For example, given
We should return
as P[0] = 1 because the 0th element of A appears at B[1], and P[1] = 4 because the 1st element of A appears at B[4], and so on.
Note:
A, B have equal lengths in range [1, 100].
A[i], B[i] are integers in range [0, 10^5].
The Idea: Map the indices of B
into a list. Then iterate through A
and build a new list P
that take the corresponding index of B
that is mapped from a key of A
. We solve the problem of duplicates by mapping to a list of elements, and simply taking the last one (as order does not pattern).
Complexity: O(N) time and space
Last updated