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;
    }
}

作者:力扣官方题解

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/314134.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

活动 | Mint Blockchain 将于 2024 年 1 月 17 号启动 MintID 限量发行活动

MintID 是 Mint Blockchain 生态的超级权益卡&#xff0c;用于探索 NFT PASS 在未来各种应用场景下的可能性。MintID 将通过限时限量有价发售的方式对外释放&#xff0c;持有人将成为 Mint Blockchain 的核心权益用户。 MintID 总量&#xff1a;10,000 枚 铸造价格&#xff1a…

方波 离散傅里叶级数 MATLAB

%方波 离散时间傅里叶变换 L 5; N 10; k [-N/2:1:N/2]; %占空比 基本周期 离散时间的参数 xn [ones(1,L),zeros(1,N-L)]; %生成方波序列 XK dfs(xn,N); magXK abs([XK(N/21:N),XK(1:N/21)]); subplot(2,2,3); stem(k,magXK); axis([-N/2,N/2,-0.5,5.5]); xlabel(k); y…

【Linux】 nohup命令使用

nohup命令 nohup是Linux和Unix系统中的一个命令&#xff0c;其作用是在终端退出时&#xff0c;让进程在后台继续运行。它的全称为“no hang up”&#xff0c;意为“不挂起”。nohup命令可以让你在退出终端或关闭SSH连接后继续运行命令。 nohup 命令&#xff0c;在默认情况下&…

python两种办法对二叉树判断是否对称

对于给定的一颗二叉树&#xff0c;需要判断其是否是对称二叉树&#xff0c;可以使用两种办法来对这个进行实现&#xff0c;分别使用深度优先搜索算法和广度优先搜索算法都可以完成。 首先考虑一下二叉树的对称&#xff0c;什么样的二叉树是对称二叉树&#xff0c;就是如果对所…

第11章 GUI Page495~496 步骤三十一:另存为别的文件

当前的TrySaveFile(bool hint_on_dirty true)有两个特征无法满足“另存”的需求&#xff1a; 一&#xff0c;TrySaveFile仅在数据为“新”的时候才提问用户输入文件名。而“另存”总是要求用户输入一个文件名&#xff0c;多以它总应该弹出一个文件选择对话框&#xff0c;这也…

2024年CES展会都有些啥?亮点集锦都在这里

&#x1f4a1; 大家好&#xff0c;我是可夫小子&#xff0c;《小白玩转ChatGPT》专栏作者&#xff0c;关注AIGC、读书和自媒体。 CES在科技界是一场盛会&#xff0c;被誉为科技界的春晚&#xff0c;展会上前沿的技术、概念的产品吸引不少关注。2024年CES是在2023年大语言模型…

Java SE入门及基础(9)

if选择结构 1. 基本if选择结构 语法 if ( 条件 ){ // 如果条件满足&#xff0c;则执行代码块 //代码块 } 案例 从控制台输入一个整数&#xff0c;如果该数字小于 10 &#xff0c;则输出 10 与该数字的差值。 流程图 代码实现 public class Example1 { public s…

如何实现网页当前页面刷新功能

类似于这样的页面 实现思路如下&#xff1a; 首先我们在pinia中定义一个刷新状态的字段&#xff0c;点击按钮的时候&#xff0c;改为相反的值对主页面的路由跳转Router-view绑定一个v-if,它绑定一个自定义的一个响应的参数&#xff0c;我们在主页面监听pinia的刷新状态数据&am…

紫光展锐5G扬帆出海 | Blade系列勇当拉美5G先锋

5G对拉丁美洲&#xff08;简称“拉美”&#xff09;绝大多数消费者来说还是一个新鲜技术。GSMA报告显示&#xff0c;过去五年&#xff0c;拉美运营商在移动网络方面的资本开支大部分用于部署4G网络。但在5G网络方面拉美也在积极大力投入中&#xff0c;紧跟全球5G发展大潮&#…

软件测试|Beautiful Soup库详细使用指南

简介 Beautiful Soup是一款强大的Python库&#xff0c;广泛用于解析HTML和XML文档&#xff0c;从中提取数据并进行处理。它的灵活性和易用性使得数据抽取变得简单&#xff0c;本文将详细介绍Beautiful Soup库的基本用法和示例。 安装Beautiful Soup 首先&#xff0c;需要确保…

软件测试工程师如何对算法做测试?

最近几年&#xff0c;随着大数据、人工智能等领域的快速发展&#xff0c;算法受到前所未有的重视&#xff0c;算法测试也随之兴起。 为了让大家能对算法测试有个初步的了解&#xff0c;这篇文章将对“如何做算法测试”进行梳理&#xff0c;大纲如下&#xff1a; 1、算法测试测…

C# 图解教程 第5版 —— 第22章 命名空间和程序集

文章目录 22.1 引用其他程序集22.2 命名空间22.2.1 命名空间名称22.2.2 命名空间的补充22.2.3 命名空间跨文件伸展22.2.4 嵌套命名空间 22.3 using 指令22.3.1 using 命名空间指令22.3.2 using 别名指令22.3.3 using static 指令 22.4 程序集的结构22.5 程序集标识符22.6 强命名…

Python3.5如何打包编译

python3.5怎么打包编译 问题&#xff1a;用Python开发的小工具有时需要编译打包为Windows(*.exe)、Mac等操作系统下的可执行性文件以供非程序员使用。 解决方案&#xff1a; 一、py2exe 目前只支持到Python3.4&#xff0c;暂不支持Python3.5 二、PyInstaller 安装&#x…

【MATLAB】小波_LSTM神经网络时序预测算法

有意向获取代码&#xff0c;请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 小波-LSTM神经网络时序预测算法是一种结合了小波变换和长短期记忆神经网络&#xff08;LSTM&#xff09;的时间序列预测方法。 小波变换是一种信号处理方法&#xff0c;能够将信号分解为…

2024年1月6日~2024年1月12日周报

目录 一、前言 二、SeisInvNet-2020 三、RTM研究 四、遇到的问题及解决 4.1 KeyError: data 4.2 将mat文件转换为npy文件 五、小结 5.1 存在的问题及疑惑 5.2 下周安排 一、前言 本周的主要安排是阅读论文查看一些好的点子。 但是想法总是美好的&#xff0c;之前答应的…

叠加文件夹内所有png文件 python

→ import os import cv2 import matplotlib.pyplot as pltPATH "./1" #文件路径 i 0 #子文件夹路径 img10 for parent, dirs, files in os.walk(PATH):for file in files:if not file.endswith(.png):continueimg cv2.imread(os.path.join(parent, file))if i0:i…

【Linux驱动】platform 设备驱动分离(一)—— 驱动分层及相关API

以目前为止的逻辑&#xff0c;无论是获取设备属性信息&#xff0c;还是实现驱动逻辑&#xff0c;都是放在一个驱动模块中。在没有设备树的情况下&#xff0c;如果我们只需要修改设备信息&#xff08;如寄存器地址&#xff09;&#xff0c;那么我们就需要重新编译整个驱动模块。…

80V 72V 60V 48V 降12V 5V 3.3V 功耗低降压恒压芯片H6603

输入电压80V、72V、60V、48V&#xff1a;这些是电源系统中的不同电压水平&#xff0c;通常用于驱动各种设备。例如&#xff0c;电动汽车、电动自行车或工业设备中的电池系统可能以这些电压级别工作。 降12V&#xff1a;这可能是指一种电源模块&#xff0c;其功能是将输入电压&…

x-cmd pkg | dua - 磁盘使用分析器

目录 简介首次用户技术特点竞品和相关作品进一步阅读 简介 dua 是 Disk Usage Analyzer 的简写&#xff0c;该工具可以快速查看给定目录的磁盘空间使用情况。 对于想要深入了解磁盘空间使用情况并有效管理存储的用户来说&#xff0c;Dua 是一个很有价值的工具。通过使用 Dua …

自己动手造一个状态机

自己动手造一个状态机 引言有限自动状态机 (FSM)五要素应用场景优势 开源产品造个轮子改造点Looplab fsm示例演示实现解析 改造过程 引言 有限自动状态机 (Finite-state machine , FSM) 通常用来描述某个具有有限个状态的对象&#xff0c;并且在对象的生命周期中组成了一个状态…