leetcode990. 等式方程的可满足性(并查集)
给定一个由表示变量之间关系的字符串方程组成的数组,每个字符串方程 equations[i] 的长度为 4,并采用两种不同的形式之一:“a==b” 或 “a!=b”。在这里,a 和 b 是小写字母(不一定不同),表示单字母变量名。
只有当可以将整数分配给变量名,以便满足所有给定的方程时才返回 true,否则返回 false。
示例 1:
输入:[“a==b”,“b!=a”]
输出:false
解释:如果我们指定,a = 1 且 b = 1,那么可以满足第一个方程,但无法满足第二个方程。没有办法分配变量同时满足这两个方程。
代码
class Solution {int[] fa;public void init(){for(int i=0;i<fa.length;i++)fa[i]=i;}public int find(int x){if(x!=fa[x])fa[x]=find(fa[x]);return fa[x];}public void union(int x,int y){x=find(x);y=find(y);if(x==y) return;fa[x]=y;}public boolean equationsPossible(String[] equations) {fa=new int[26];init();for(String s:equations)//将相等的数字的凑成一个集合{ if(s.charAt(1)=='!') continue;int fx=find(s.charAt(0)-'a');int fy=find(s.charAt(3)-'a');union(s.charAt(0)-'a',s.charAt(3)-'a');}for(String s:equations)//如果不相等的两个数字出现在同一个集合中则出现矛盾{if(s.charAt(1)=='=') continue;int fx=find(s.charAt(0)-'a');int fy=find(s.charAt(3)-'a');if(fx==fy) return false;} return true;}
}
leetcode990. 等式方程的可满足性(并查集)相关推荐
- [Leedcode][JAVA][第990题][等式方程的可满足性][并查集]
[问题描述][中等] 给定一个由表示变量之间关系的字符串方程组成的数组,每个字符串方程 equations[i] 的长度为 4,并采用两种不同的形式之一:"a==b" 或 &quo ...
- leetcode990. 等式方程的可满足性
leetcode990. 等式方程的可满足性 题目描述 链接: leetcode990. 给定一个由表示变量之间关系的字符串方程组成的数组,每个字符串方程 equations[i] 的长度为 4,并采 ...
- 990. 等式方程的可满足性
链接:990. 等式方程的可满足性 题解:https://www.yuque.com/liweiwei1419/algo/gq157y class Solution {public:vector< ...
- LeetCode 990. 等式方程的可满足性(并查集)
1. 题目 给定一个由表示变量之间关系的字符串方程组成的数组,每个字符串方程 equations[i] 的长度为 4,并采用两种不同的形式之一:"a==b" 或 "a!= ...
- 高级数据结构与算法 | 并查集(Union-Find)
文章目录 并查集的原理 并查集的实现 例题 并查集的原理 在一些应用问题中,需要将n个不同的元素划分成一些不相交的集合.开始时,每个元素自成一个 单元素集合,然后按一定的规律将归于同一组元素的集合合并 ...
- 并查集c++代码_[Leetcode 每日精选](本周主题-并查集) 547. 朋友圈
题目难度: 中等 原题链接 今天继续来做并查集的问题, 这道题仍然比较基础, 而且也是个比较接近现实的问题了. 大家在我的公众号"每日精选算法题"中的聊天框中回复 并查集 就能看到 ...
- 经典算法题:字典树、并查集、单调栈、二分、带标记函数dp、树、全排列、字符串问题等常用算法
0. Tips 1. 位运算 如何枚举一个二进制状态数字k的子集, 方法就是针对中的二进制为1的位开始进行减法,判断数字k的二进制子集, 像枚举(2^k-1) ~ 0一样枚举其子集: int sub ...
- LeetCode 1697. 检查边长度限制的路径是否存在(排序+并查集)
文章目录 1. 题目 2. 解题 1. 题目 给你一个 n 个点组成的无向图边集 edgeList ,其中 edgeList[i] = [ui, vi, disi] 表示点 ui 和点 vi 之间有一 ...
- LeetCode 685. 冗余连接 II(并查集)
1. 题目 在本问题中,有根树指满足以下条件的有向图.该树只有一个根节点,所有其他节点都是该根节点的后继. 每一个节点只有一个父节点,除了根节点没有父节点. 输入一个有向图,该图由一个有着N个节点 ( ...
最新文章
- 在Andoird studio 中用代码实现setId报错,而在ecplise中可以,的处理方法
- python可以自学吗-python自学行吗
- 关于UIWebView与js交互的问题
- keras lstm 层理解
- P1458 顺序的分数 Ordered Fractions(有技巧的枚举)+C++类封装=精简代码
- 修改数据表部分字段方法封装-及-动态生成对象并动态添加属性
- 查找算法:折半查找算法实现及分析
- WebX框架的页面授权
- Bloomberg监控系统的标准化和扩展
- July面试题整理系列(1)
- C++ 数组动态分配
- 中文核心期刊投稿指南
- 华三华为设备序列号查看生产日期
- 时尚简约风格的ae字幕条模板
- 09-mumu模拟器调键盘,回车键
- Aurora 8B/10B光口通信
- 小米redmibook14系统重装、c盘分区以及rdo远程方法
- 爬虫一 requests库与BeautifulSoup库、HTML
- 关于java中创建对象时属性的初始化过程
- 普通for和增强for