2024-1-12
1.用两个哈希表分别统计word1和word2中字符出现的次数
2.遍历words1中的每个单词x,并使用count1.put(x,count1.getOrDefault(x,0)+1)将单词x作为键,将其在count1中对应的值加1存储起来,count1.getOrDefault(x,0)表示获取count1中键为x的值,如果不存在则返回默认值0。
3.同理遍历word2,同样操作
4.遍历count1的键集合count1.keySet(),对于每个键x,判断count1.get(x)是否等于1且count2.getOrDefault(x,0)是否等于1。如果满足条件,则将res加1。
public int countWords(String[] words1, String[] words2) {
Map<String,Integer> count1 = new HashMap<>();
Map<String,Integer> count2 = new HashMap<>();
//存储每个单词在对应数组中出现的次数
for (String x:
words1 ) {
// 遍历第一个字符串数组words1,将单词及其出现次数存储到count1中
count1.put(x,count1.getOrDefault(x,0)+1);
}
for (String x:
words2 ) {
// 遍历第二个字符串数组words2,将单词及其出现次数存储到count2中
count2.put(x,count2.getOrDefault(x,0)+1);
}
int res = 0;
//记录相同单词的数量
for (String x:
count1.keySet()) {
// 遍历count1的键集合,判断在count1中出现次数为1且在count2中也出现次数为1的单词
if (count1.get(x)==1&&count2.getOrDefault(x,0)==1){
res++;
}
}
return res;
}