# halfrost/LeetCode-Go

Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
..
Failed to load latest commit information.
990. Satisfiability of Equality Equations.go
990. Satisfiability of Equality Equations_test.go

# 990. Satisfiability of Equality Equations

## 题目:

Given an array equations of strings that represent relationships between variables, each string `equations[i]` has length `4` and takes one of two different forms: `"a==b"` or `"a!=b"`. Here, `a` and `b` are lowercase letters (not necessarily different) that represent one-letter variable names.

Return `true` if and only if it is possible to assign integers to variable names so as to satisfy all the given equations.

Example 1:

``````Input: ["a==b","b!=a"]
Output: false
Explanation: If we assign say, a = 1 and b = 1, then the first equation is satisfied, but not the second.  There is no way to assign the variables to satisfy both equations.
``````

Example 2:

``````Input: ["b==a","a==b"]
Output: true
Explanation: We could assign a = 1 and b = 1 to satisfy both equations.
``````

Example 3:

``````Input: ["a==b","b==c","a==c"]
Output: true
``````

Example 4:

``````Input: ["a==b","b!=c","c==a"]
Output: false
``````

Example 5:

``````Input: ["c==c","b==d","x!=z"]
Output: true
``````

Note:

1. `1 <= equations.length <= 500`
2. `equations[i].length == 4`
3. `equations[i][0]` and `equations[i][3]` are lowercase letters
4. `equations[i][1]` is either `'='` or `'!'`
5. `equations[i][2]` is `'='`

## 题目大意

1. 1 <= equations.length <= 500
2. equations[i].length == 4
3. equations[i][0] 和 equations[i][3] 是小写字母
4. equations[i][1] 要么是 '='，要么是 '!'
5. equations[i][2] 是 '='

## 解题思路

• 给出一个字符串数组，数组里面给出的是一些字母的关系，只有 `'=='``'! ='` 两种关系。问给出的这些关系中是否存在悖论？
• 这一题是简单的并查集的问题。先将所有 `'=='` 关系的字母 `union()` 起来，然后再一一查看 `'! ='` 关系中是否有 `'=='` 关系的组合，如果有，就返回 `false`，如果遍历完都没有找到，则返回 `true`
You can’t perform that action at this time.