目录
给你两个字符串数组?
words1
?和?words2
?,请你返回在两个字符串数组中?都恰好出现一次?的字符串的数目。
?
class Solution {
public:
int countWords(vector<string>& words1, vector<string>& words2) {
}
};C
分别统计两个字符串数组中字符串出现次数,统计那些在两个数组中都只出现一次的。
时间复杂度: O(n) 空间复杂度:O(U),U为字符集大小
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;
}
};
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())