leetcode990

时间:2023-03-09 13:03:30
leetcode990
 class Finder:
def __init__(self):
self.Parent = [i for i in range(26)]
def union(self, p, q):
self.Parent[self.find(p)] =self.find(q) def find(self, p):
if self.Parent[p] != p:
return self.find(self.Parent[p])
else:
return p
class Solution(object):
def equationsPossible(self, equations):
"""
:type equations: List[str]
:rtype: bool
"""
def convert(c):
return ord(c)-ord('a') finder = Finder()
for e in equations:
if e.find("==") == 1:
left, right = convert(e[0]), convert(e[3])
finder.union(left, right)
else:
pass
for e in equations:
if e.find("!=") == 1:
left, right = convert(e[0]), convert(e[3])
if finder.find(left) == finder.find(right):
return False
return True

并查集方案