You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
class Solution {
public:
vector<int> anagramMappings(vector<int>& A, vector<int>& B) {
vector<int> res;
unordered_map<int, int> m;
for (int i = 0; i < B.size(); ++i) m[B[i]] = i;
for (int num : A) res.push_back(m[num]);
return res;
}
};
Given two lists
A
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 an index mapping
P
, fromA
toB
. A mappingP[i] = j
means thei
th element inA
appears inB
at indexj
.These lists
A
andB
may contain duplicates. If there are multiple answers, output any of them.For example, given
We should return
as
P[0] = 1
because the0
th element ofA
appears atB[1]
, andP[1] = 4
because the1
st element ofA
appears atB[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]
.这道题给了我们两个数组A和B,说是A和B中的数字都相同,但是顺序不同,有点类似错位词的感觉。让我们找出数组A中的每个数字在数组B中的位置。这道题没有太大的难度,用个HashMap建立数组B中的每个数字和其位置之间的映射,然后遍历数组A,在HashMap中查找每个数字的位置即可,参见代码如下:
类似题目:
Find All Anagrams in a String
Valid Anagram
Anagrams
LeetCode All in One 题目讲解汇总(持续更新中...)
The text was updated successfully, but these errors were encountered: