class Solution {
public boolean equationsPossible(String[] equations) {
UnionFind unionfind=new UnionFind(26);
for(String s:equations){
if(s.charAt(1)=='=')
{
int index1=s.charAt(0)-'a';
int index2=s.charAt(3)-'a';
unionfind.union(index1,index2);
}
}
for(String s:equations){
if(s.charAt(1)=='!')
{
int index1=s.charAt(0)-'a';
int index2=s.charAt(3)-'a';
if(unionfind.find(index1)==unionfind.find(index2)){
return false;
}
}
}
return true;
}
private class UnionFind{
private int[] parent;
public UnionFind(int n)
{
this.parent=new int[n];
for(int i=0;i<n;i++)
{
parent[i]=i;
}
}
public void union(int l1,int l2){
if(find(l1)==find(l2)) return;
parent[find(l1)]=find(l2);
}
public int find(int x)
{
if(parent[x]!=x)
{
parent[x]=find(parent[x]);
}
return parent[x];
}
}
}
并查集 力扣990等式方程的可满足性
最新推荐文章于 2024-11-16 14:46:58 发布