当前位置:   article > 正文

LeetCode简单题之统计出现过一次的公共字符串_给你两个字符串数组 words1 和 words2 ,请你返回在两个字符串数组中 都恰好出现一

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

题目

给你两个字符串数组 words1 和 words2 ,请你返回在两个字符串数组中 都恰好出现一次 的字符串的数目。
示例 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 <= 1000
    1 <= words1[i].length, words2[j].length <= 30
    words1[i] 和 words2[j] 都只包含小写英文字母。
    来源:力扣(LeetCode)

解题思路

  分别统计两个words里字符串的频率,然后遍历两个频率表里公共的部分,查找频率都为1的字符串。

class Solution:
    def countWords(self, words1: List[str], words2: List[str]) -> int:
        words1=Counter(words1)
        words2=Counter(words2)
        count=0
        for i in words1.keys()&words2.keys():
            if words1[i]==1 and words2[i]==1:
                count+=1
        return count
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/67246
推荐阅读
相关标签
  

闽ICP备14008679号