day-07 统计出现过一次的公共字符串

在这里插入图片描述
思路
用哈希表统计words1和words2中各个字符串的出现次数,次数皆为1的字符串符合题意

解题方法
//用于存储words1中各个字符串的出现次数
HashMap<String,Integer> hashMap1=new HashMap<>();

//用于存储words2中各个字符串的出现次数
HashMap<String,Integer> hashMap2=new HashMap<>();

//如果words1中某个字符串出现一次且在words2中也出现一次,则ans++
if(hashMap1.getOrDefault(words1[i],-1)==1&&hashMap2.getOrDefault(words1[i],-1)==1) ans++;

时间复杂度,: O(n)

空间复杂度,: O(n)

Code

public static int countWords(String[] words1, String[] words2) {
   
        int ans=0;
        HashMap<String,Integer> hashMap1=new HashMap<>();//用于存储words1中各个字符串的出现次数
        HashMap<String,Integer> hashMap2=new HashMap<>();//用于存储words2中各个字符串的出现次数
        for(int i=0;i<words1.length;i++){
      //记录words1中各个字符串的出现次数
            hashMap1.put(words1[i],hashMap1.getOrDefault(words1[i],0)+1);
        }

        for(int i=0;i<words2.length;i++){
      //记录words2中各个字符串的出现次数
            hashMap2.put(words2[i],hashMap2.getOrDefault(words2[i],0)+1);
        }

        for(int i=0;i<words1.length;i++){
      //如果words1中某个字符串出现一次且在words2中也出现一次,则ans++
            if(hashMap1.getOrDefault(words1[i],-1)==1&&hashMap2.getOrDefault(words1[i],-1)==1) ans++;
        }
        return ans; //返回结果
    }

注:hashMap1.get(words1[i])==1会报错,因为可能返回null
所以使用hashMap1.getOrDefault(words1[i],-1)==1

官方:

class Solution {
   
    public int countWords(String[] words1, String[] words2) {
   
        // 统计字符串出现频率
        Map<String, Integer> freq1 = new HashMap<>();
        Map<String, Integer> freq2 = new HashMap<>();
        for (String w : words1) {
   
            freq1.put(w, freq1.getOrDefault(w, 0) + 1);
        }
        for (String w : words2) {
   
            freq2.put(w, freq2.getOrDefault(w, 0) + 1);
        }

        // 遍历 words1 出现的字符并判断是否满足要求
        int res = 0;
        for (String w : freq1.keySet()) {
   
            if (freq1.get(w) == 1 && freq2.getOrDefault(w, 0) == 1) {
   
                res++;
            }
        }
        return res;
    }
}

作者:力扣官方题解

相关推荐

  1. 2085. 统计出现公共字符串

    2024-01-13 02:36:05       67 阅读
  2. LC 2085. 统计出现公共字符串

    2024-01-13 02:36:05       50 阅读
  3. 统计出现公共字符串

    2024-01-13 02:36:05       59 阅读
  4. 2085. 统计出现公共字符串

    2024-01-13 02:36:05       37 阅读
  5. 力扣2085.统计出现公共字符串

    2024-01-13 02:36:05       57 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-13 02:36:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-13 02:36:05       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-13 02:36:05       87 阅读
  4. Python语言-面向对象

    2024-01-13 02:36:05       96 阅读

热门阅读

  1. Mysql 触发器

    2024-01-13 02:36:05       50 阅读
  2. Linux中创建文件的基本方法

    2024-01-13 02:36:05       53 阅读
  3. gitlab部署

    2024-01-13 02:36:05       46 阅读
  4. 1. Presto基础

    2024-01-13 02:36:05       48 阅读
  5. 安全基础知识

    2024-01-13 02:36:05       59 阅读
  6. ubuntu设定时间与外部ntp同步

    2024-01-13 02:36:05       56 阅读
  7. 69、python - 利用向量内积来优化卷积运算

    2024-01-13 02:36:05       50 阅读