文章目录

  • 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阿明),一起加油、一起学习进步!

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

  1. 并查集c++代码_[Leetcode 每日精选](本周主题-并查集) 547. 朋友圈

    题目难度: 中等 原题链接 今天继续来做并查集的问题, 这道题仍然比较基础, 而且也是个比较接近现实的问题了. 大家在我的公众号"每日精选算法题"中的聊天框中回复 并查集 就能看到 ...

  2. LeetCode 684. 冗余连接(并查集)

    1. 题目 在本问题中, 树指的是一个连通且无环的无向图. 输入一个图,该图由一个有着N个节点 (节点值不重复1, 2, -, N) 的树及一条附加的边构成.附加的边的两个顶点包含在1到N中间,这条附 ...

  3. LeetCode 803. 打砖块(并查集)

    文章目录 1. 题目 2. 解题 1. 题目 有一个 m x n 的二元网格,其中 1 表示砖块,0 表示空白. 砖块 稳定(不会掉落)的前提是: 一块砖直接连接到网格的顶部,或者 至少有一块相邻(4 ...

  4. leetcode 765. 情侣牵手(并查集)

    N 对情侣坐在连续排列的 2N 个座位上,想要牵到对方的手. 计算最少交换座位的次数,以便每对情侣可以并肩坐在一起. 一次交换可选择任意两人,让他们站起来交换座位. 人和座位用 0 到 2N-1 的整 ...

  5. [Leetcode 每日精选](本周主题-并查集) 面试题 17.07. 婴儿名字

    题目难度: 中等 原题链接 今天继续来做并查集的问题, 这道题多了一些变化, 但核心仍然是并查集. 大家在我的公众号"每日精选算法题"中的聊天框中回复 并查集 就能看到该系列当前已 ...

  6. LeetCode 1813. 句子相似性 III

    文章目录 1. 题目 2. 解题 1. 题目 一个句子是由一些单词与它们之间的单个空格组成,且句子的开头和结尾没有多余空格. 比方说,"Hello World" ,"HE ...

  7. LeetCode 734. 句子相似性(哈希)

    文章目录 1. 题目 2. 解题 1. 题目 给定两个句子 words1, words2 (每个用字符串数组表示),和一个相似单词对的列表 pairs ,判断是否两个句子是相似的. 例如,当相似单词对 ...

  8. leetcode 721. 账户合并(并查集)

    给定一个列表 accounts,每个元素 accounts[i] 是一个字符串列表,其中第一个元素 accounts[i][0] 是 名称 (name),其余元素是 emails 表示该账户的邮箱地址 ...

  9. [leetcode] 839. 相似字符串组并查集

    class USF { public:int *parent;int *rank;int groupCount; //组数USF(int n){parent = new int[n];rank = n ...

最新文章

  1. torch.nn.LogSoftmax()与输入具有相同尺寸和形状的张量,其值在[-inf,0)范围内
  2. 国内唯一ACL最佳论文得主冯洋:冲击最佳论文需要知道的事情
  3. 硬盘参数你都懂吗?(上)-从案例引发的讨论
  4. 学习:重写hashCode()方法的必要性
  5. java 1000以内的完数
  6. JAVA版本微信公众账号开源项目版本发布-jeewx1.0(捷微)
  7. java 轻量级同步volatile关键字简介与可见性有序性与synchronized区别 多线程中篇(十二)...
  8. 1075 - Incorrect table definition;there can be only one auto column and it must be defined as a key
  9. java的io流的file类_java IO流 (一) File类的使用
  10. fastreport masterdata每页都显示_ALIENTEK 阿波罗 STM32F767 开发板资料连载十六章 OLED 显示实验...
  11. 2020华为软挑总结
  12. html5 web报表工具,Web报表工具的填报功能
  13. 【老骥伏枥-狗年大礼包】嵌入式linux逆向工程,手把手教你作黑Q-第二讲
  14. 一篇文章带你彻底了解Kubernetes
  15. Cesium图形绘制
  16. java清空表格怎么实现_Java 创建、删除、操作PPT中的表格
  17. rq940服务器 经常自动重启,高端首选 联想ThinkServer RQ940服务器
  18. 关于计算机安全的英语文章,计算机专业英语期末论文
  19. loj 6184 无心行挽 虚树+DP+倍增
  20. 八年级英语下册计算机教学总结,初中信息技术教学工作总结

热门文章

  1. 前缀中缀后缀表达式的计算求值
  2. C语言中#define的用法(转)
  3. oracle放在内存里,oracle如中何把小表钉住在内存中
  4. ftp服务器上传文件权限设置,ftp服务器 上传文件权限设置
  5. 计算机科学与技术pdf,计算机科学与技术(.PDF
  6. LeetCode22——Generate Parentheses(给定n对括号,然后看有多少正确的括号组合)
  7. 添加WCF服务引用失败解决办法
  8. Python爬虫入门教程 22-100 CSDN学院课程数据抓取
  9. Apache 配置:是否显示文件列表
  10. 关于a标签不能调用js方法的小细节,你注意到了么?