LeetCode 737. 句子相似性 II(并查集)

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

给定两个句子 words1, words2 (每个用字符串数组表示),和一个相似单词对的列表 pairs ,判断是否两个句子是相似的。

例如,当相似单词对是 pairs = [["great", "fine"], ["acting","drama"], ["skills","talent"]]的时候,words1 = ["great", "acting", "skills"]words2 = ["fine", "drama", "talent"] 是相似的。

注意相似关系是 具有 传递性的。
例如,如果 “great” 和 “fine” 是相似的,“fine” 和 “good” 是相似的,则 “great” 和 “good” 是相似的。

而且,相似关系是具有对称性的。
例如,“great” 和 “fine” 是相似的相当于 “fine” 和 “great” 是相似的。

并且,一个单词总是与其自身相似
例如,句子 words1 = [“great”], words2 = [“great”], pairs = [] 是相似的,尽管没有输入特定的相似单词对。

最后,句子只会在具有相同单词个数的前提下才会相似。
所以一个句子 words1 = [“great”] 永远不可能和句子 words2 = [“doubleplus”,“good”] 相似。

注:
words1 and words2 的长度不会超过 1000。
pairs 的长度不会超过 2000。
每个pairs[i] 的长度为 2。
每个 words[i] 和 pairs[i][j] 的长度范围为 [1, 20]

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/sentence-similarity-ii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

数据结构–并查集(Disjoint-Set)

class dsu
{unordered_map<string,string> f;
public:dsu(unordered_set<string> &s){for(auto& w : s)f[w] = w;//并查集初始化}void merge(string& a, string& b){string fa = find(a);string fb = find(b);f[fa] = fb;}string find(string a){string origin = a;while(a != f[a])a = f[a];return f[origin] = a;}
};
class Solution {
public:bool areSentencesSimilarTwo(vector<string>& words1, vector<string>& words2, vector<vector<string>>& pairs) {if(words1.size() != words2.size())return false;unordered_set<string> s;for(auto& p : pairs){s.insert(p[0]);s.insert(p[1]);}dsu u(s);//并查集for(auto& p : pairs)u.merge(p[0], p[1]);//mergefor(int i = 0; i < words1.size(); ++i){if(words1[i] == words2[i])continue;//并查集findif(u.find(words1[i]) != u.find(words2[i]))return false;}return true;}
};

480 ms 57 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

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

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

相关文章

python中的_init_的使用

1. __init__方法 想一想:有没有办法能够在创建对象的时候&#xff0c;就顺便把车这个对象的属性给设置呢&#xff1f; 答:__init__()方法 使用方式&#xff1a; def 类名&#xff08;object&#xff09;: #初始化函数&#xff0c;用来完成一些默认的设定 def __in…

深入 JavaScript(4) - new运算符是如何工作的

接着上篇(//www.cnblogs.com/patrick-holynova/archive/2013/05/14/3077295.html), 来谈谈在OOP中重要的new运算. JavaScript 不像高级语言C, Java等本身就提供了对类的支持, 那么在Js中如何实现类, 类的实例? 对象字面量用构造器创建对象字面量, 例: Detail {game: World of…

计算机硬盘怎么设置ntfs,每次设置系统后,能否更改计算机硬盘分区的fat32和ntfs格式?...

f3622635硬盘的格式转换一个&#xff0c;FAT32到NTFS在“运行”中输入“ CMD”以打开“命令提示符”窗口&#xff0c;输入: “ CONVERT F: / FS: NTFS”&#xff0c;其中“ F: ”是分区驱动器号(带冒号)&#xff0c;“ / FS: NTFS“是将指定的分区转换为NTFS格式.我认为它会很快…

python中_str_使用方法

定义__str__()方法: class Car: def __init__(self, newWheelNum, newColor): self.wheelNum newWheelNum self.color newColor def __str__(self): msg "嘿。。。我的颜色是" self.color "我有" int(self.wh…

LeetCode 708. 循环有序列表的插入

文章目录1. 题目2. 解题1. 题目 给定循环升序列表中的一个点&#xff0c;写一个函数向这个列表中插入一个新元素&#xff0c;使这个列表仍然是循环升序的。 给定的可以是这个列表中任意一个顶点的指针&#xff0c;并不一定是这个列表中最小元素的指针。 如果有多个满足条件的…

VMWare serve 2.0 进入 RHEL Linux rescue模式

可能由于我的鼠标点击速度比较慢所以一直没机会在 VMware Serve启动的时候按F2进入bios 模式&#xff0c;哈哈。 1.在次用另外一种方式&#xff1a; 2.进入bios 系统后&#xff0c;选择“boot”&#xff0c;再选"CD/ROM"&#xff0c;上移到第一位。 3.在boot:后面输入…

计算机主页被篡改这是来自互联网的风险,IE主页为2345.com无法修改回来的解决方法...

X〒ⅠⅡⅢⅣφ〃IE主页为2345.com无法修改回来的解决方法近期,接到不少网友反馈,主页被改为2345.com了,改不回来,请问有何好的解决方法,现特地总结了些资料如下,供大家参考:1、IE默认连接首页被修改受到更改的注册表项目为&#xff1a;HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft…

LeetCode 755. 倒水(模拟)

文章目录1. 题目2. 解题1. 题目 给出一个地形高度图&#xff0c; heights[i] 表示该索引处的高度。 每个索引的宽度为 1。在 V 个单位的水落在索引 K 处以后&#xff0c;每个索引位置有多少水&#xff1f; 水最先会在索引 K 处下降并且落在该索引位置的最高地形或水面之上。然…

python中的self含义及使用方法

self # 定义一个类 class Animal: # 方法 def __init__(self, name): self.name name def printName(self): print(名字为:%s%self.name) # 定义一个函数 def myPrint(animal): animal.printName() dog1 Animal(西西) myPrint(…

Galaxy s4怎么安装一个预装软件的签名不一致的新版本

公司新买一台galaxy s4&#xff0c;要测试一个软件。但是该软件在s4上面已经有预装版本了&#xff0c;无法安装。 用了下列方法才安装成功&#xff1a; 1. 请卖手机的帮忙获得root权限。 2. 检查s4是否已经root, 在手机上安装360安全卫士。然里面有工具->一键root&#xff0…

win10计算机修改底色,win10电脑如何修改登陆背景

win10中如何修改登陆时的背景图片&#xff1f;在win10中登陆界面的图片总是只有那几个背景图片&#xff0c;那登陆界面的背景图片能够更换么&#xff0c;答案是肯定的&#xff0c;下面小编就详细的给大家介绍一下背景更换的问题&#xff0c;希望能够帮助到大家。win10中更换登陆…

LeetCode 444. 序列重建(拓扑排序)

文章目录1. 题目2. 解题1. 题目 验证原始的序列 org 是否可以从序列集 seqs 中唯一地重建。 序列 org 是 1 到 n 整数的排列&#xff0c;其中 1 ≤ n ≤ 104。 重建是指在序列集 seqs 中构建最短的公共超序列。&#xff08;即使得所有 seqs 中的序列都是该最短序列的子序列&am…

python中的保护对象数据

保护对象数据 查看过着修改对象的属性&#xff08;数据&#xff09;&#xff0c;有2种方法。 直接通过对象名修改 通过方法间接修改 Python中没有像C中public和private这些关键字来区别公有属性和私有属性。它是以属性命名方式来区分&#xff0c;如果在属性名前面加了2个下划…

Highcharts 本地导出图片 Java

下载的 Highcharts-2.3.5.zip 解压后 有 E:\Highcharts\Highcharts-2.3.5\exporting-server\java 目录 提供了Java实现的导出应用。 1&#xff09;安装maven&#xff0c;配置环境变量. &#xff08;http://maven.apache.org/download.cgi&#xff09; 1.jdk 我装的是E:\java\j…

华硕主板如何用u盘启动计算机,华硕主板怎么设置u盘启动都有哪些方法

随着互联网的不断发展&#xff0c;现在使用电脑的机会越来越多了。但是机器难免出故障&#xff0c;或者对于新的电脑需要设置启动。那么华硕主板怎么设置u盘启动。下面由一键工作室介绍一下。华硕主板怎么设置u盘启动华硕主板怎么设置u盘启动 华硕主板设置u盘启动方法1、首先&a…

LeetCode 353. 贪吃蛇(deque+set)

文章目录1. 题目2. 解题1. 题目 请你设计一个 贪吃蛇游戏&#xff0c;该游戏将会在一个 屏幕尺寸 宽度 x 高度 的屏幕上运行。 起初时&#xff0c;蛇在左上角的 (0, 0) 位置&#xff0c;身体长度为 1 个单位。 你将会被给出一个 (行, 列) 形式的食物位置序列。当蛇吃到食物…

python中__del__使用方法

创建对象后&#xff0c;python解释器默认调用__init__()方法。当删除一个对象时&#xff0c;python解释器也会默认调用一个方法&#xff0c;这个方法为__del__()方法。在python中&#xff0c;对于开发者来说很少会直接销毁对象(如果需要&#xff0c;应该使用del关键字销毁)。Py…

html中post和get区别

HTTP协议中的GET和POST方法——二者主要区别如下&#xff1a; 1. get是从服务器上获取数据&#xff0c;post是向服务器传送数据。2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中&#xff0c;值和表单内各个字段一一对应&#xff0c;在URL中可以看到。post是通过HT…

计算机简单故障时的排除方法,电脑简单故障排除解决办法大全

电脑简单故障排除解决办法大全一、电脑罢 工了?听报警声就可以处理故障!在使用电脑的时候&#xff0c;我们会经常遇到开机时电脑黑屏没有反应的情况&#xff0c;普通的电脑用户而对这样的故障实在是无从下手&#xff0c;但是一般电脑会有一个内部自检的功能&#xff0c;如果检…

LeetCode MySQL 1543. Fix Product Name Format(trim去空格+upper/lower大小写)

文章目录1. 题目2. 解题1. 题目 Table: Sales ----------------------- | Column Name | Type | ----------------------- | sale_id | int | | product_name | varchar | | sale_date | date | ----------------------- sale_id is the primary key for …