【算法萌新闯力扣】:两句话中的不常见单词

    力扣热题:两句话中的不常见单词

开篇

  今天是备战蓝桥杯的第19天,今天到目前刷了4道力扣算法题。其中,这道题是对我来说收获最大的一道,让我更熟练地掌握了一些算法题中方法,于是来与大家分享一下。

题目链接: 884.两句话中的不常见单词

题目描述

在这里插入图片描述

代码思路

  题目其实可以把不常见单词理解成在两个句子中总共只出现一次的单词。那显而易见,我们只要用哈希表统计出每个单词出现的次数,题目就迎刃而解。
这道题的代码中运用了许多方法,列出来给大家看看。
1.String类中的split()
2.map.getOrDefault( , )
3.遍历哈希表

for(Map.Entry<String, Integer> entry : map.entrySet()){//if(entry.getValue() == 1) list.add(entry.getKey());
}

代码纯享版

class Solution {public String[] uncommonFromSentences(String s1, String s2) {String[] arr1 = s1.split(" ");String[] arr2 = s2.split(" ");Map<String, Integer> map = new HashMap<>();for(String str : arr1){// if(map.containsKey(str)) map.put(str, map.get(str) + 1);// else map.put(str, 1);map.put(str, map.getOrDefault(str, 0) + 1);}for(String str : arr2){// if(map.containsKey(str)) map.put(str, map.get(str) + 1);// else map.put(str, 1);map.put(str, map.getOrDefault(str, 0) + 1);}List<String> list = new ArrayList<>();  for(Map.Entry<String, Integer> entry : map.entrySet()){if(entry.getValue() == 1) list.add(entry.getKey());}String[] arr3 = new String[list.size()];int i = 0;for(String str : list){arr3[i++] = str;}return arr3;}
}

代码逐行解析版

class Solution {public String[] uncommonFromSentences(String s1, String s2) {String[] arr1 = s1.split(" "); //利用split方法,利用空格把句子变成单词数组String[] arr2 = s2.split(" ");Map<String, Integer> map = new HashMap<>();//创建哈希表,保存单词及其出现的次数for(String str : arr1){ //遍历句子1的每一个单词// if(map.containsKey(str)) map.put(str, map.get(str) + 1);// else map.put(str, 1);map.put(str, map.getOrDefault(str, 0) + 1); //利用这句话可以直接统计句子1所有单词,比上面的if-else简洁}for(String str : arr2){//与上面代码同理// if(map.containsKey(str)) map.put(str, map.get(str) + 1);// else map.put(str, 1);map.put(str, map.getOrDefault(str, 0) + 1);}List<String> list = new ArrayList<>(); //创建动态数组for(Map.Entry<String, Integer> entry : map.entrySet()){ //遍历哈希表,把值为1的键存到动态数组中if(entry.getValue() == 1) list.add(entry.getKey());}String[] arr3 = new String[list.size()]; //创建数组int i = 0;for(String str : list){ //把动态数组里的元素转移到数组中arr3[i++] = str;}return arr3; //返回数组}
}

结语

  如果对这道题的分享对您有帮助,点个关注,我会每天分享力扣题的讲解,与大伙儿一起向前迈进!

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

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

相关文章

服务器中了elbie勒索病毒解决办法,elbie勒索病毒解密数据恢复

科技技术的不断发展&#xff0c;为企业的生产运营提供了极大便利&#xff0c;但网络安全威胁也不断增加&#xff0c;近期云天数据恢复中心陆续接到很多企业的求助&#xff0c;企业的服务器中了elbie勒索病毒&#xff0c;导致系统瘫痪&#xff0c;所有业务无法正常开展&#xff…

链表OJ--下

文章目录 前言一、链表分割二、环形链表I三、环形链表II四、链表的回文结构五、随机链表的复制 前言 一、链表分割 牛客网CM11&#xff1a;链表分割- - -点击此处传送 题解&#xff1a; 思路图&#xff1a; 代码&#xff1a; 二、环形链表I 力扣141&#xff1a;环形链表…

使用SpringBoot集成MyBatis对管理员的查询操作

增删改查中的查询操作&#xff0c;对所有的普通管理员进行查询操作。 效果展示&#xff1a; 不仅可以在打开页面时进行对管理员的自动查询操作&#xff0c;还可以在输入框进行查询。 首先是前端向后端发送POST请求&#xff0c;后端接收到请求&#xff0c;如果是有参数传到后端…

【uni-app】uniapp中弹出输入框的示例

uni.showModal({title: 请输入企业名称,content: ,editable: true, //是否显示输入框placeholderText: 请输入企业名称, //输入框提示内容confirmText: 确认,cancelText: 取消,success: (res) > {if (res.confirm) {this.checkDesc.name res.content;// console.log(输入的…

内部网关协议_路由信息协议RIP_开放路径优先OSPF协议_基本知识

目录: 因特网路由选择协议概述 路由信息协议RIP 开放路径优先OSPF协议 因特网路由选择协议概述 一.路由选择分类 静态路由选择和动态路由选择 静态路由选择: 采用人工配置的方式给路由器添加网络路由、默认路由和特定主机路由等路由条目。静态路由选择简单、开销小&#…

移动端的自动化基于类实现启动一次应用跑全部用例

1.unittest框架 class TestStringMethods(unittest.TestCase): def setUp(self) -> None: # 每一条测试用例开始前执行 print("setup") def tearDown(self) -> None: # 每一条测试用例结束后执行 print("teardown") …

八、ffmpeg录制视频为yuv文件

前言 测试环境&#xff1a; ffmpeg的4.3.2自行编译版本windows环境qt5.12 图片的一些重要知识&#xff1a; RGB图片 位深度&#xff1a;每一个像素都会使用n个二进制位来存储颜色信息。每一个像素的颜色都是由红&#xff08;Red&#xff09;、绿&#xff08;Green&#xff0…

【python】python旅游网数据抓取分析(源码+论文)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

C语言——结构体的应用

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 路还在继续&#xff0c;梦还在期…

webGL技术开发的软件类型

WebGL 是一种在浏览器中渲染 2D 和 3D 图形的 JavaScript API。通过 WebGL&#xff0c;你可以创建各种类型的软件项目&#xff0c;特别是那些需要强大图形渲染能力的项目。以下是一些你可以使用 WebGL 实现的软件项目类型&#xff0c;希望对大家有所帮助。北京木奇移动技术有限…

老生常谈之 JavaScript 中 0.1 + 0.2 != 0.3 的原因

先来一个模棱两可的说法&#xff1a;因为精度丢失、存储溢出的问题 先复习一下二进制的转换方法&#xff1a; 整数&#xff1a;除以基数&#xff0c;取余&#xff0c;自底向上小数&#xff1a;乘以基数&#xff0c;取整&#xff0c;自顶向下 接着&#xff0c;复习一下双精度…

Linux使用操作

各类小技巧 ctrlc强制停止 ctrld退出账户的登录 或者退出某些特定程序的专属页面 history 查看历史命令 !命令前缀&#xff0c;自动执行上一次匹配前缀的命令 ctrlr 输入内容去匹配历史命令 光标移动快捷键 ctrla&#xff0c;跳到命令开头 ctrle&#xff0c;跳到命令结尾…

【C语言_题库】输入4个整数,要求按照从小到大的顺序输出

题目 输入4个整数 要求按照从小到大的顺序输出 书上的学习辅导答案 // 主要部分 int main(){int t,a,b,c,d;printf("请输入四个数:");scanf("%d,%d,%d,%d"

SkyWalking全景解析:从原理到实现的分布式追踪之旅

&#x1f38f;&#xff1a;你只管努力&#xff0c;剩下的交给时间 &#x1f3e0; &#xff1a;小破站 SkyWalking全景解析&#xff1a;从原理到实现的分布式追踪之旅 前言第一&#xff1a;SkyWalking简介第二&#xff1a;实现原理概览第三&#xff1a;主键与架构第四&#xff1…

【计算机基础】通过插件plantuml,实现在VScode里面绘制状态机

&#x1f4e2;&#xff1a;如果你也对机器人、人工智能感兴趣&#xff0c;看来我们志同道合✨ &#x1f4e2;&#xff1a;不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 &#x1f4e2;&#xff1a;文章若有幸对你有帮助&#xff0c;可点赞 &#x1f44d;…

数学与她的

文章目录 定义域函数的定义域&#xff1a;一般地复合函数求解极值&#xff0c;单调性综合考题&#xff1a; 定义域 函数的定义域&#xff1a; 求定义域的原则性问题&#xff08;通用&#xff09;分母不为0 偶次根式的被开方式为非负&#xff08; ≥ 0 &#xff09; 偶次根式的…

redis运维(十五) 集合

一 集合 ① 概念 集合的元素在redis里面的世界是member集合&#xff1a; setset集合当中不允许重复的元素&#xff0c;而且set集合当中元素是没有顺序的,不存在元素下标 ② sadd、smembers、srem ③ sismember、srandmember、spop、scard spop 命令用于移除集合中的指定 …

sql语法大全

1&#xff0c;创建数据库 create database 数据库名字; 2,查看所有的数据库名称 show databases; MySQL服务器已有4个数据库&#xff0c;这些数据库都是MySQL安装时自动创建的。 information_schema 和 performance_schema 数据库分别是 MySQL 服务器的数据字典&#xff08;…

CSS 渐变

linear-gradient() 线性渐变 /* 渐变轴为 45 度&#xff0c;从蓝色渐变到红色 */ linear-gradient(45deg, blue, red);/* 从右下到左上、从蓝色渐变到红色 */ linear-gradient(to left top, blue, red); /* to [left/right] [top/bottom] *//* 色标&#xff1a;从下到上&#…

算法——滑动窗口(Sliding Window)

一、背景知识 滑动窗口算法&#xff08;Sliding Window&#xff09;&#xff1a; 在给定数组 / 字符串上维护一个固定长度或不定长度的窗口。可以对窗口进行滑动操作、缩放操作&#xff0c;以及维护最优解操作。题型一&#xff1a;固定长度题型二&#xff1a;不固定长度 二、例…