惠来做网站,萧山建设信用网,wordpress建站seo好做吗,在征婚网站上认识做期货5922. 统计出现过一次的公共字符串
给你两个字符串数组 words1 和 words2 #xff0c;请你返回在两个字符串数组中 都恰好出现一次 的字符串的数目。 示例 1#xff1a;输入#xff1a;words1 [leetcode,is,amazing,as,请你返回在两个字符串数组中 都恰好出现一次 的字符串的数目。 示例 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 。提示
1 words1.length, words2.length 10001 words1[i].length, words2[j].length 30words1[i] 和 words2[j] 都只包含小写英文字母。
解题思路
使用map记录下每个单词出现的次数key为单词字符串value为其对应出现的次数遍历两个字符串数组统计两个字符串数组中每一个单词出现次数遍历word1数组中的所有单词只有当word1中出现次数为1的单词我们才需要在word2数组检查该单词是否存在并且检查该单词在word2中是否只出现一次如果满足条件的话则说明这是一个在两个字符串数组中 都恰好出现一次 的字符串。
代码
class Solution {
public:int countWords(vectorstring words1, vectorstring words2) {mapstring,int m1,m2;for (int i 0; i words1.size(); i) {m1[words1[i]];}for (int i 0; i words2.size(); i) {m2[words2[i]];}int res(0);for(auto item:m1){if (item.second1m2[item.first]1)res;}return res;}
};