1class Solution {2int uf[26];3int find(int x) {4return uf[x] == x ? x : (uf[x] = find(uf[x]));5}67public:8bool equationsPossible(vector<string> &equations) {9for (int i = 0; i < 26; ++i) uf[i] = i;10for (auto e : equations) {11if (e[1] == '=') uf[find(e[0] - 'a')] = find(e[3] - 'a');12}13for (auto e : equations) {14if (e[1] == '!' && find(e[0] - 'a') == find(e[3] - 'a')) return false;15}16return true;17}18};