【教3妹学编程-算法题】统计出现过一次的公共字符串

开心

3妹:哈哈哈哈哈哈,太搞笑了~ 呵呵呵呵呵呵
2哥:3妹干嘛呢, 笑的这么魔性!
3妹:在看王牌对王牌,老搞笑了
2哥:这季好像没有贾玲吧。
3妹:是啊,听说贾玲去导电影了, 还狂瘦了100斤呢, 哎,我也该减减肥了。
2哥:切,你每隔几天就会说要减肥,也没见你减啊
3妹:不吃饱哪有力气减肥,我每天还要刷题、找工作,多辛苦啊。
2哥:说到刷题, 今天的题目做了没呢?
3妹:嗯嗯,没呢没呢,现在就去做。

吃瓜

#题目:
给你两个字符串数组 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] 都只包含小写英文字母。

#思路:
思考

哈希表,
我们用两个哈希表分别统计 word1与 word2 中字符串的出现次数。

随后,我们遍历第一个哈希表中的字符串,检查它在 word1与 word2 中的出现次数是否均为 1。与此同时,我们统计出现过一次的公共字符串个数,如果某个字符串在两个数组中均只出现一次,那么我们将个数加 1。最终,我们返回该个数作为答案。

#java代码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;}
}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenAI 自带的检索功能好用吗?定量测评带你深度了解!

向量数据库的劲敌来了&#xff1f;又有一批赛道创业公司要倒下&#xff1f; …… 这是 OpenAI 上线 Assistant 检索功能后&#xff0c;技术圈传出的部分声音。原因在于&#xff0c;此功能可以为用户提供基于知识库问答的 RAG&#xff08;检索增强生成&#xff09; 能力。而此前…

2024年解决网络抓取中CAPTCHA问题的顶级CAPTCHA解决方案

在网络抓取领域&#xff0c;CAPTCHA作为一种安全措施用于区分人类用户和自动化机器人。CAPTCHA是“Completely Automated Public Turing Test to Tell Computers and Humans Apart”的缩写&#xff0c;向用户提出挑战&#xff0c;例如扭曲的文本、图像或谜题&#xff0c;用户必…

制作 CentOS Stream9 的U盘系统启动盘

一、简述 注:请勿用于商用&#xff0c;如有版权纠纷&#xff0c;于博主无任何关系。&#xff08;仅用于学习研究使用&#xff09; 由于CentOs Linux 7和CentOs Stream8终止日期是2024年&#xff0c;需要将系统升级到最新版本的CentOs Stream9&#xff0c;下面是刻录系统盘的操…

Laravel 框架中队列的使用

概述 Laravel 框架内置了强大的队列系统&#xff0c;用于处理异步任务、提高系统性能等。队列可以让任务异步执行&#xff0c;而不会阻塞当前进程&#xff0c;可以提高系统的处理能力。 Laravel 的队列系统支持多种驱动&#xff0c;如 Redis、Beanstalkd、SQS 等&#xff0c;…

大语言模型下载,huggingface和modelscope加速

huggingface 下载模型 如果服务器翻墙了&#xff0c;不用租机器 如果服务器没翻墙&#xff0c;可以建议使用下面的方式 可以租一台**autodl**不用显卡的机器&#xff0c;一小时只有1毛钱&#xff0c;启动学术加速&#xff0c;然后下载&#xff0c;下载完之后&#xff0c;用scp…

版本控制系统教程

1.Git的基本介绍 1.1 Git的概念 Git是一个开源的分布式版本控制系统&#xff0c;用于敏捷高效地处理任何或小或大的项目.Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件.Git与常用的版本控制工具CVS&#xff0c;Subversion等不同&#xff…

【深入挖掘Java技术】「源码原理体系」盲点问题解析之HashMap工作原理全揭秘(上)

HashMap工作原理全揭秘 — 核心源码解析 知识盲点概念介绍数据结构数组链表数组VS链表哈希表不同JVM版本HashMap的展现形式 HashMap VS HashTable特性区别对比 hashcodehashCode的作用equals方法和hashcode的关系key为null怎么办执行步骤 核心参数容量探讨负载因子探讨加载因子…

宏集案例丨宏集PC Runtime软件助推食品行业生产线数字化革新

来源&#xff1a;宏集科技 工业物联网 宏集案例丨宏集PC Runtime软件助推食品行业生产线数字化革新 原文链接&#xff1a;https://mp.weixin.qq.com/s/DwzVzifUiidNr-FT3Zfzpg 欢迎关注虹科&#xff0c;为您提供最新资讯&#xff01; 01 前言 近年来&#xff0c;中国食品行业…

怎样创建vue项目(分别基于vue-cli和vite两种的创建方式)

一、基于vue-cli脚手架创建 1、安装node.js 1、首先需要安装node.js&#xff0c;推荐下载地址&#xff1a;Node.js 2、检查是否安装成功&#xff0c;使用打开黑窗口的快捷键windowR&#xff0c;输入cmd&#xff0c;在黑窗口输入node -v&#xff0c;如果输出版本号&#xff0…

Triangulated Surface Mesh Simplification 三角表面网格简化

文章目录 Triangulated Surface Mesh Simplification 三角表面网格简化1 介绍2 简化过程概述3 成本策略3.1 Lindstrom-Turk 成本和布局策略3.2 Garland-Heckbert 成本和布局策略3.3 成本策略政策 4 应用程序编程接口4.1 API概述4.2 强制参数4.3 可选的命名参数4.4 调用示例 5 例…

蓝桥杯省赛无忧 竞赛常用库函数 课件5 排序

01 sort简介 02 sort的用法 sort(起始地址&#xff0c;结束地址的下一位,比较函数);默认用小于号#include<bits/stdc.h> using namespace std; int main(){int a[1000];int n;//读取数组大小cin>>n;//读取元素for(int i1;i<n;i)cin>>a[i];//对数组进行排…

美团2024届秋招笔试第一场编程真题(js版本)

1.小美的外卖订单 简单的加法逻辑&#xff0c;需要注意的是各个数据的边界问题 折扣价不能超过原价减的价格不能超过满的价格满减优惠仅限原价购入 const rl require("readline").createInterface({ input: process.stdin }); void (async function () {let count…