目录
一、题目
1、题目描述
2、接口描述
3、原题链接
二、解题报告
1、思路分析
2、复杂度
3、代码详解
C++代码
Python3代码
一、题目
1、题目描述
给你两个字符串数组
words1
和words2
,请你返回在两个字符串数组中 都恰好出现一次 的字符串的数目。
2、接口描述
class Solution {
public:int countWords(vector<string>& words1, vector<string>& words2) {}
};C
3、原题链接
2085. 统计出现过一次的公共字符串
二、解题报告
1、思路分析
分别统计两个字符串数组中字符串出现次数,统计那些在两个数组中都只出现一次的。
2、复杂度
时间复杂度: O(n) 空间复杂度:O(U),U为字符集大小
3、代码详解
C++代码
class Solution {
public:int countWords(vector<string>& words1, vector<string>& words2) {unordered_map<string , int> hash1 , hash2;for(auto & x : words1) hash1[x]++;for(auto & x : words2) hash2[x]++;int cnt = 0;for(auto & p : hash1)cnt += p.second == 1 && hash2[p.first] == 1;return cnt;}
};
Python3代码
class Solution:def countWords(self, words1: List[str], words2: List[str]) -> int:hash1 , hash2 = Counter(words1) , Counter(words2)return sum(y == 1 and hash2[x] == 1 for x , y in hash1.items())