题目描述:
给你两个字符串数组 words1
和 words2
,请你返回在两个字符串数组中 都恰好出现一次 的字符串的数目。
示例1:
输入:words1 = ["leetcode","is","amazing","as","is"], words2 = ["amazing","leetcode","is"]
输出:2
解释:
- "leetcode" 在两个数组中都恰好出现一次,计入答案。
- "amazing" 在两个数组中都恰好出现一次,计入答案。
- "is" 在两个数组中都出现过,但在 words1 中出现了 2 次,不计入答案。
- "as" 在 words1 中出现了一次,但是在 words2 中没有出现过,不计入答案。
所以,有 2 个字符串在两个数组中都恰好出现了一次。
示例2:
输入:words1 = ["b","bb","bbb"], words2 = ["a","aa","aaa"]
输出:0
解释:没有字符串在两个数组中都恰好出现一次。
示例3:
输入:words1 = ["a","ab"], words2 = ["a","a","a","ab"]
输出:1
解释:唯一在两个数组中都出现一次的字符串是 "ab" 。
class Solution:
def countWords(self, words1: List[str], words2: List[str]) -> int:
a=0
cn1={}
cn2={}
for i in words1:
cn1[i]=cn1.get(i,0)+1 #将cn1[i]作为字典元素,相应的键值对应出现的次数,
for i in words2:
cn2[i]=cn2.get(i,0)+1 #与上同理
for i in cn1:
if cn1.get(i)==1 and cn2.get(i)==1:
a=a+1
return a
#次方法可以查出任意元素出现的次数