LeetCode 990. 等式方程的可满足性(并查集)
1. 题目
给定一个由表示变量之间关系的字符串方程组成的数组,每个字符串方程 equations[i] 的长度为 4,并采用两种不同的形式之一:"a==b" 或 "a!=b"
。
在这里,a 和 b 是小写字母(不一定不同),表示单字母变量名。
只有当可以将整数分配给变量名,以便满足所有给定的方程时才返回 true,否则返回 false。
示例 1:
输入:["a==b","b!=a"]
输出:false
解释:如果我们指定,a = 1 且 b = 1,那么可以满足第一个方程,
但无法满足第二个方程。没有办法分配变量同时满足这两个方程。示例 2:
输出:["b==a","a==b"]
输入:true
解释:我们可以指定 a = 1 且 b = 1 以满足满足这两个方程。示例 3:
输入:["a==b","b==c","a==c"]
输出:true示例 4:
输入:["a==b","b!=c","c==a"]
输出:false示例 5:
输入:["c==c","b==d","x!=z"]
输出:true提示:
1 <= equations.length <= 500
equations[i].length == 4
equations[i][0] 和 equations[i][3] 是小写字母
equations[i][1] 要么是 '=',要么是 '!'
equations[i][2] 是 '='
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/satisfiability-of-equality-equations
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 解题
参考:数据结构–并查集(Disjoint-Set)
类似题目:
LeetCode 959. 由斜杠划分区域(并查集)
LeetCode 1202. 交换字符串中的元素(并查集)
LeetCode 1319. 连通网络的操作次数(BFS/DFS/并查集)
程序员面试金典 - 面试题 17.07. 婴儿名字(并查集)
class uni
{int f[26];
public:uni(){for(int i = 0; i < 26; ++i)f[i] = i;}int find(int a){if(f[a] == a)return f[a];return f[a] = find(f[a]);}void merge(int a, int b){int fa = find(a);int fb = find(b);f[fa] = fb;}
};
class Solution {public:bool equationsPossible(vector<string>& equations) {uni u;int a, b, i;for(i = 0; i < equations.size(); ++i){if(equations[i][1]=='='){a = equations[i][0]-'a';b = equations[i][3]-'a';u.merge(a,b);}}for(i = 0; i < equations.size(); ++i){if(equations[i][1]=='!'){a = equations[i][0]-'a';b = equations[i][3]-'a';if(u.find(a) == u.find(b))return false;}}return true;}
};
12 ms 11.2 MB
LeetCode 990. 等式方程的可满足性(并查集)相关推荐
- [Leedcode][JAVA][第990题][等式方程的可满足性][并查集]
[问题描述][中等] 给定一个由表示变量之间关系的字符串方程组成的数组,每个字符串方程 equations[i] 的长度为 4,并采用两种不同的形式之一:"a==b" 或 &quo ...
- 990. 等式方程的可满足性
链接:990. 等式方程的可满足性 题解:https://www.yuque.com/liweiwei1419/algo/gq157y class Solution {public:vector< ...
- LeetCode 685. 冗余连接 II(并查集)
1. 题目 在本问题中,有根树指满足以下条件的有向图.该树只有一个根节点,所有其他节点都是该根节点的后继. 每一个节点只有一个父节点,除了根节点没有父节点. 输入一个有向图,该图由一个有着N个节点 ( ...
- leetcode990. 等式方程的可满足性
leetcode990. 等式方程的可满足性 题目描述 链接: leetcode990. 给定一个由表示变量之间关系的字符串方程组成的数组,每个字符串方程 equations[i] 的长度为 4,并采 ...
- LeetCode 737. 句子相似性 II(并查集)
文章目录 1. 题目 2. 解题 1. 题目 给定两个句子 words1, words2 (每个用字符串数组表示),和一个相似单词对的列表 pairs ,判断是否两个句子是相似的. 例如,当相似单词对 ...
- LeetCode 305. 岛屿数量 II(并查集)
文章目录 1. 题目 2. 解题 2.1 超时解 2.1 改进计算方法 1. 题目 假设你设计一个游戏,用一个 m 行 n 列的 2D 网格来存储你的游戏地图. 起始的时候,每个格子的地形都被默认标记 ...
- Leetcode 1436旅行终点站 拓扑排序 并查集与队列
题目介绍 题目难度: easy 给你一份旅游线路图,该线路图中的旅行线路用数组 paths 表示,其中 paths[i] = [cityAi, cityBi] 表示该线路将会从 cityAi 直接前往 ...
- leetcode990. 等式方程的可满足性(并查集)
给定一个由表示变量之间关系的字符串方程组成的数组,每个字符串方程 equations[i] 的长度为 4,并采用两种不同的形式之一:"a==b" 或 "a!=b" ...
- leetcode 839. 相似字符串组(并查集)
如果交换字符串 X 中的两个不同位置的字母,使得它和字符串 Y 相等,那么称 X 和 Y 两个字符串相似.如果这两个字符串本身是相等的,那它们也是相似的. 例如,"tars" 和 ...
最新文章
- 传感器为什么在低量程偏差大_传感器的静态特性
- mysql集群安装配置
- c语言精炼pdf,发计算机二级C语言多年精炼笔试试卷.pdf
- 哈夫曼编码之大根堆小根堆揭西县
- linux socket 面试题,面试题
- php 错误500排错,如何排查Web服务器HTTP ERROR 500的错误?
- Ruby设计模式透析之 —— 策略(Strategy)
- java 集合 总结 表_java-集合总结
- 第11章 连接查询和分组查询
- -rw-r--r--@ what's @
- 修改php.ini以达到 屏蔽错误信息
- 电脑拖机,win10一台电脑两人用
- 系统进化树-原理介绍及软件使用
- 快速学会网页中鼠标经过图片放大效果
- 文献笔记|Lau, 2021, Nature human behaviour
- 普物期末题型总结题解
- React中文文档之Rendering Elements
- Scala 上下文界定
- python基础知识整理13-正则re
- getClass().getResourceAsStream()