leetcode:990.等式方程的可满足性[图]
学习要点
- 理解关系之间的相互传递
题目链接
990. 等式方程的可满足性 - 力扣(LeetCode)
题目描述
解法:图联通
class Solution {
public:char my_find_root(unordered_map<char,int>& tu_map_char,char ch){while(tu_map_char[ch] >= 0){ch = tu_map_char[ch];}return ch;}bool equationsPossible(vector<string>& equations) {int n = equations.size();// if(equations.size() == 1) return true;vector<string> v1;vector<string> v2;for(auto& i: equations){if(i[1] == '='){v1.push_back(i);}else{v2.push_back(i);}}unordered_map<char,int> tu_map_char;for(char ch = 'a';ch<='z';ch++){tu_map_char[ch] = -1;}for(int i = 0;i<v1.size();i++){if(v1[i][0] == v1[i][3])continue;if(my_find_root(tu_map_char,v1[i][0]) != my_find_root(tu_map_char,v1[i][3])){tu_map_char[my_find_root(tu_map_char,v1[i][3])] = v1[i][0];}}bool flag = true;for(int i = 0;i<v2.size();i++){if(v2[i][0] == v2[i][3]){flag = false;break;}if(my_find_root(tu_map_char,v2[i][0]) == my_find_root(tu_map_char,v2[i][3])){flag = false;break;}}return flag;}
};