题目链接

Satisfiability of Equality Equations - LeetCode

注意点

  • 必须要初始化pre

解法

解法一:典型的并查集算法应用。先遍历所有等式,将等号两边的字母加入同一分类,每类中的字母都是相等的。然后遍历不等式,如果不等号两边的字母属于同一类则返回false。时间复杂度O(nm)

class Solution {
public:
map<char,char> pre;
char Find(char x)
{
char r = x;
while(pre[r] != r)
{
r = pre[r];
}
return r;
}
void Join(char x,char y)
{
char fx = Find(x);
char fy = Find(y);
if(fx != fy) pre[fx] = fy;
}
void Init()
{
char letter[26] ={'a','b','c','d','e','f','g','h','i',
'j','k','l','m','n','o','p','q','r',
's','t','u','v','w','x','y','z'};
for (auto l:letter)
{
pre[l] = l;
} }
bool equationsPossible(vector<string>& equations) {
Init();
for(auto e:equations)
{
if(e[1] == '=') Join(e[0],e[3]);
}
for(auto e:equations)
{
if(e[1] == '!' && Find(e[0]) == Find(e[3]))
{
return false;
}
}
return true;
}
};

小结

最新文章

  1. 初识Python
  2. mysql 常用语句
  3. [转]Android - 文件读写操作 总结
  4. [Basic] The most basic things about java
  5. linux内存分配
  6. kali Linux系列教程之BeFF安装与集成Metasploit
  7. Linux下修改网卡的mac地址
  8. pdf文件流生成pdf文件
  9. YII2 过滤器 filters
  10. Python之路【第六篇】:Python迭代器、生成器、面向过程编程
  11. Android回调监听的实现
  12. python中import与from方法总结
  13. codeforces 632C The Smallest String Concatenation
  14. Delphi fmx控件在手机滑动与单击的问题
  15. Arraylist集合遍历输出
  16. day_6.7 py tcp
  17. [jQuery] 通过ajax保存到服务器,成功显示信息.
  18. 针对unicode对象---检测字符串是否只由数字组成
  19. f5 SNMP配置
  20. 异常处理:No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer

热门文章

  1. VGGnet——从TFrecords制作到网络训练
  2. shell中中括号的使用
  3. STUN, TURN, ICE介绍
  4. Docker Zero Deployment and Secrets (二)
  5. Git----01介绍&amp;下载&amp;安装&amp;创建本地仓库
  6. Workbook对象的方法总结(二)
  7. 使用spring整合Quartz实现—定时器
  8. Ubuntu16.04安装vmware workstation14
  9. js传输txt文档内容
  10. (转)Django配置数据库读写分离