LeetCode 2085. 统计出现过一次的公共字符串

目录

一、题目

1、题目描述

2、接口描述

3、原题链接

二、解题报告

1、思路分析

2、复杂度

3、代码详解

C++代码

​Python3代码


一、题目

1、题目描述

给你两个字符串数组 words1 和 words2 ,请你返回在两个字符串数组中 都恰好出现一次 的字符串的数目。

2、接口描述

class Solution {
public:
    int countWords(vector& words1, vector& words2) {
        
    }
};C

3、原题链接

2085. 统计出现过一次的公共字符串


二、解题报告

1、思路分析

分别统计两个字符串数组中字符串出现次数,统计那些在两个数组中都只出现一次的。

2、复杂度

时间复杂度: O(n) 空间复杂度:O(U),U为字符集大小

3、代码详解

C++代码
class Solution {
public:
    int countWords(vector& words1, vector& words2) {
        unordered_map 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())

你可能感兴趣的:(leetcode每日一题,算法,数据结构,c++,哈希算法)