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

发布时间:2024年01月12日

目录

一、题目

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())

文章来源:https://blog.csdn.net/EQUINOX1/article/details/135552135
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。