leetcode 884. 两句话中的不常见单词

news/2024/11/14 19:35:35/

文章目录

      • 题目描述
      • 解题思路
        • 法1
      • 执行结果
        • 法1

leetcode 884. 两句话中的不常见单词


题目描述

  1. 两句话中的不常见单词

句子 是一串由空格分隔的单词。每个 单词 仅由小写字母组成。

如果某个单词在其中一个句子中恰好出现一次,在另一个句子中却 没有出现 ,那么这个单词就是 不常见的 。

给你两个 句子 s1 和 s2 ,返回所有 不常用单词 的列表。返回列表中单词可以按 任意顺序 组织。

示例 1:

输入:s1 = “this apple is sweet”, s2 = “this apple is sour”
输出:[“sweet”,“sour”]
示例 2:

输入:s1 = “apple apple”, s2 = “banana”
输出:[“banana”]

提示:

1 <= s1.length, s2.length <= 200
s1 和 s2 由小写英文字母和空格组成
s1 和 s2 都不含前导或尾随空格
s1 和 s2 中的所有单词间均由单个空格分隔

解题思路

法1

哈希表

1 使用一个map[string]int来储存单词出现的次数,其中key储存单词,value储存次数

2 使用字符串切割的返回将字符串以空格’ '进行分割,得到一个单词的数组,

3 遍历单词的数组,并向map中储存值

最后输出只出现一次的字符串

  • 时间复杂度(O(n))
  • 空间复杂度(O(n))

执行结果

法1

我们使用strings.Split函数将句子s1和s2按照空格分割成单词数组words1和words2。

然后,我们使用一个countsmap来记录每个单词的出现次数。遍历words1和words2,分别记录每个单词的出现次数。

接下来,我们遍历countsmap,找到在两个句子中只出现一次的单词,并将其添加到uncommonWords列表中。

最后,我们返回uncommonWords作为结果。

func uncommonFromSentences(s1 string, s2 string) []string {// 使用map记录单词出现的次数counts := make(map[string]int)// 将句子s1和s2按空格分割成单词words1 := strings.Split(s1, " ")words2 := strings.Split(s2, " ")// 遍历句子s1,记录每个单词的出现次数for _, word := range words1 {counts[word]++}// 遍历句子s2,记录每个单词的出现次数for _, word := range words2 {counts[word]++}// 找到在两个句子中只出现一次的单词uncommonWords := make([]string, 0)for word, count := range counts {if count == 1 {uncommonWords = append(uncommonWords, word)}}return uncommonWords
}

执行结果:
通过
显示详情
查看示例代码
添加备注

执行用时:
0 ms
, 在所有 Go 提交中击败了
100.00%
的用户
内存消耗:
2.1 MB
, 在所有 Go 提交中击败了
47.83%
的用户
通过测试用例:
55 / 55
炫耀一下:



本文由mdnice多平台发布


http://www.ppmy.cn/news/75712.html

相关文章

验证码发明人的天才故事

验证码发明人的天才故事 Luis von Ahn&#xff0c;卡内基梅隆大学计算机科学副教授&#xff0c;天才计算机科学家和企业家 01 调皮捣蛋、不循规蹈矩的青少年时代 1978年8月19日&#xff0c;Luis von Ahn出生在危地马拉首都危地马拉城的一个中产阶级家庭。 他是德国和危地马拉…

MybatisPlus--基础入门!真滴方便

目录 一、简介 2.特性 二、入门 1.创建springboot 项目(点击查看如何创建 ) 注意&#xff1a;引入 MyBatis-Plus 之后请不要再次引入 MyBatis 以及 MyBatis-Spring&#xff0c;以避免因版本差异导致的问题 2.数据准备 3.配置application.yml 4.代码 BaseMapper<>…

使用Spring Cloud构建Serverless应用

使用Spring Cloud构建Serverless应用 一、Serverless简介1. 概念介绍2. 特点及优势3. 应用场景 二、Spring Cloud简介1. 概念介绍2. Spring Cloud框架架构3. 主要功能 三、Spring Cloud构建Serverless应用1. Serverless应用与Spring Cloud的结合2. Spring Cloud Function的安装…

[深度好文]10张图带你轻松理解关系型数据库系统的工作原理

[深度好文]10张图带你轻松理解关系型数据库系统的工作原理 原文(欢迎关注)&#xff1a;https://mp.weixin.qq.com/s/CNCfWRpv8QlICGvZkLG4Jw 尽管数据库在我们应用程序中扮演着储存几乎所有状态的关键角色&#xff0c;但人们对其运行原理的了解通常仅停留在较为浅显的层面&…

渗透模拟环境配置和工具介绍-渗透测试模拟环境(0)

我们在 渗透攻防环境搭建与攻防知识体系思维导图 一文中有整体渗透环境设计和说明,但渗透环境攻击路径是什么、网络配置怎么配置,渗透环境的渗透工具是哪些、有什么作用并没有介绍,本篇将继续展开环境功能演示(环境配置步骤和验证相对较多),为模拟环境攻防系列打好基础。…

中原雄狮官网上线 | LTD物流服务行业案例分享

​一、公司介绍 中原雄狮崛起于2017年&#xff0c;彼时&#xff0c;全国货运行业存在许多不良行为&#xff0c;无赖货主和黑心货站恶意拖欠货车司机运费&#xff0c;而货车司机作为弱势群体却势单力薄无依无助的问题&#xff0c;为了让司机的血汗钱能颗粒归仓&#xff0c;中原雄…

实现图形算法API[软光栅渲染器,C++]

最近有点烦&#xff0c;发烧感冒了三天[事实上是俩天&#xff0c;第三天是因为摆得太舒服了索性多玩一天]&#xff0c;啥都没学&#xff0c;打守望先锋也把把被虐...&#xff0c;想着今天来提起键盘把之前的东西都总结一下。 那么话归真题&#xff0c;首先我是仿造opengl来写的…

图片转字符图片工具类

├── cn.xsshome.imagetool //包名├── convert │ └── ImageToChar //图片转字符图片、文本方法 ├── slideverifycode │ └── SlideVerifyCodeGenerateUtil //滑块验证码工具类代…