给定一个由表示变量之间关系的字符串方程组成的数组,每个字符串方程 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. 等式方程的可满足性(并查集)相关推荐

  1. [Leedcode][JAVA][第990题][等式方程的可满足性][并查集]

    [问题描述][中等] 给定一个由表示变量之间关系的字符串方程组成的数组,每个字符串方程 equations[i] 的长度为 4,并采用两种不同的形式之一:"a==b" 或 &quo ...

  2. leetcode990. 等式方程的可满足性

    leetcode990. 等式方程的可满足性 题目描述 链接: leetcode990. 给定一个由表示变量之间关系的字符串方程组成的数组,每个字符串方程 equations[i] 的长度为 4,并采 ...

  3. 990. 等式方程的可满足性

    链接:990. 等式方程的可满足性 题解:https://www.yuque.com/liweiwei1419/algo/gq157y class Solution {public:vector< ...

  4. LeetCode 990. 等式方程的可满足性(并查集)

    1. 题目 给定一个由表示变量之间关系的字符串方程组成的数组,每个字符串方程 equations[i] 的长度为 4,并采用两种不同的形式之一:"a==b" 或 "a!= ...

  5. 高级数据结构与算法 | 并查集(Union-Find)

    文章目录 并查集的原理 并查集的实现 例题 并查集的原理 在一些应用问题中,需要将n个不同的元素划分成一些不相交的集合.开始时,每个元素自成一个 单元素集合,然后按一定的规律将归于同一组元素的集合合并 ...

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

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

  7. 经典算法题:字典树、并查集、单调栈、二分、带标记函数dp、树、全排列、字符串问题等常用算法

    0. Tips 1. 位运算 如何枚举一个二进制状态数字k的子集, 方法就是针对中的二进制为1的位开始进行减法,判断数字k的二进制子集, 像枚举(2^k-1) ~ 0一样枚举其子集: int sub ...

  8. LeetCode 1697. 检查边长度限制的路径是否存在(排序+并查集)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个 n 个点组成的无向图边集 edgeList ,其中 edgeList[i] = [ui, vi, disi] 表示点 ui 和点 vi 之间有一 ...

  9. LeetCode 685. 冗余连接 II(并查集)

    1. 题目 在本问题中,有根树指满足以下条件的有向图.该树只有一个根节点,所有其他节点都是该根节点的后继. 每一个节点只有一个父节点,除了根节点没有父节点. 输入一个有向图,该图由一个有着N个节点 ( ...

最新文章

  1. 在Andoird studio 中用代码实现setId报错,而在ecplise中可以,的处理方法
  2. python可以自学吗-python自学行吗
  3. 关于UIWebView与js交互的问题
  4. keras lstm 层理解
  5. P1458 顺序的分数 Ordered Fractions(有技巧的枚举)+C++类封装=精简代码
  6. 修改数据表部分字段方法封装-及-动态生成对象并动态添加属性
  7. 查找算法:折半查找算法实现及分析
  8. WebX框架的页面授权
  9. Bloomberg监控系统的标准化和扩展
  10. July面试题整理系列(1)
  11. C++ 数组动态分配
  12. 中文核心期刊投稿指南
  13. 华三华为设备序列号查看生产日期
  14. 时尚简约风格的ae字幕条模板
  15. 09-mumu模拟器调键盘,回车键
  16. Aurora 8B/10B光口通信
  17. 小米redmibook14系统重装、c盘分区以及rdo远程方法
  18. 爬虫一 requests库与BeautifulSoup库、HTML
  19. 关于java中创建对象时属性的初始化过程
  20. 普通for和增强for

热门文章

  1. 【计算机系统设计】实践笔记(6)改进数据通路:lw和sw指令
  2. Makefile(二)
  3. mmap内存映射、system V共享内存和Posix共享内存
  4. 【大牛疯狂教学】mysqlinnodb和myisam
  5. Java面试知识点总结宝典助你通关!成功入职字节跳动
  6. 二面蚂蚁金服(交叉面),已拿offer,Java岗定级阿里P6
  7. 程序员35岁真的是分水岭吗?小白也能看明白
  8. 学生档案c语言编程,学生档案管理问题
  9. 128.Two Sum
  10. python字典嵌套字典的情况下获取某个key的value