self.parent[x] = self.find(self.parent[x])
if self.connected(p, q): return
self.parent[leader_p] = leader_q
def connected(self, p, q):
return self.find(p) == self.find(q)
def regionsBySlashes(self, grid):
def get_pos(row, col, i):
return (row * n + col) * 4 + i
uf.union(get_pos(row - 1, col, 2), get_pos(row, col, 1))
uf.union(get_pos(row, col - 1, 3), get_pos(row, col, 0))
uf.union(get_pos(row, col, 0), get_pos(row, col, 1))
uf.union(get_pos(row, col, 2), get_pos(row, col, 3))
uf.union(get_pos(row, col, 1), get_pos(row, col, 3))
uf.union(get_pos(row, col, 0), get_pos(row, col, 2))
uf.union(get_pos(row, col, 0), get_pos(row, col, 1))
uf.union(get_pos(row, col, 1), get_pos(row, col, 2))
uf.union(get_pos(row, col, 2), get_pos(row, col, 3))