c_cpp LeetCode - 等式方程的可满足性

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp LeetCode - 等式方程的可满足性相关的知识,希望对你有一定的参考价值。


// https://leetcode.com/problems/satisfiability-of-equality-equations/
class Solution {
public:
    void DFS(vector< vector<int> > g, int s, map<int,bool> &visited,
             vector<int> &color,int &gcount)
    {
        visited[s]=true;
        color[s]=gcount;
        for(int i=0;i<g[s].size();i++){
            if(!visited[g[s][i]]){
                DFS(g,g[s][i],visited,color,gcount);
            }
        }
    }
    bool equationsPossible(vector<string> equations) {
        vector< vector<int> > g(26);
        for(int i=0;i<equations.size();i++){
            if(equations[i][1] == '='){
                g[equations[i][0]-'a'].push_back(equations[i][3]-'a');
                g[equations[i][3]-'a'].push_back(equations[i][0]-'a');
            }
        }
        map<int,bool> visited;
        int gcount=0;
        vector<int> color(26,-1);
        for(int i=0;i<26;i++){
            if(!visited[i]){
                gcount++;
                DFS(g,i,visited,color,gcount);
            }
        }
        for(int i=0;i<equations.size();i++){
            if(equations[i][1] == '!'){
                if(equations[i][0] == equations[i][3]){
                    return false;
                }
                if(color[equations[i][0]-'a'] == color[equations[i][3]-'a']){
                    return false;
                }
            }
        }
        return true;
    }
};

以上是关于c_cpp LeetCode - 等式方程的可满足性的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 990. 等式方程的可满足性 | Python

leetcode每日一题(2020-06-07):990. 等式方程的可满足性

leetcode每日一题(2020-06-07):990. 等式方程的可满足性

LeetCode1707. 与数组中元素的最大异或值 (字典树)/ 990. 等式方程的可满足性(并查集)

990. 等式方程的可满足性 - medium

方程:方程(equation)是指含有未知数的等式