思路:
判断pairs是否包含A、B两个数组对,可以理解为对pairs用Map创建字典。
pairs的第一列与第二列均可以为键,
Map<String,Set<String>> map = new HashMap<>();
代码实现:
class Solution {
public boolean areSentencesSimilar(String[] words1, String[] words2, String[][] pairs) {
if(words1.length!=words2.length)
return false;
Map<String,Set<String>> map = new HashMap<>();
int i;
for(String[] pair : pairs){
if(!map.containsKey(pair[0])){
map.put(pair[0],new HashSet<>());
}
if(!map.containsKey(pair[1])){
map.put(pair[1],new HashSet<>());
}
map.get(pair[0]).add(pair[1]);
map.get(pair[1]).add(pair[0]);
}
for(i=0;i<words1.length;i++){
if(words1[i].equals(words2[i]))
continue;
if(!map.containsKey(words1[i]))
return false;
if(!map.get(words1[i]).contains(words2[i]))
return false;
}
return true;
}
}