Satisfiability of Equality Equations

IF
AlgoAxiomStaff Engineers
JSTS
Medium20 mins

You are given an array of strings equations that represent relationships between variables where each string equations[i] is of length 4 and takes one of two forms: "xi==yi" or "xi!=yi". Here, xi and yi are lowercase letters representing variable names.

Return true if it is possible to assign integers to variable names so as to satisfy all the given equations, or false otherwise.

Examples

Example 1:

Input: equations = ["a==b","b!=a"]

Output: false

Explanation: If we assign a = 1 and b = 1 to satisfy a==b, then b!=a is not satisfied.

Example 2:

Input: equations = ["b==a","a==b"]

Output: true

Explanation: We can assign a = 1 and b = 1 to satisfy both equations.

Example 3:

Input: equations = ["a==b","b==c","a==c"]

Output: true

Explanation: Assign a = b = c = 1.

Constraints

  • 1 <= equations.length <= 500
  • equations[i].length == 4
  • equations[i][0] is a lowercase letter
  • equations[i][1] is either '=' or '!'
  • equations[i][2] is either '=' or '!'
  • equations[i][3] is a lowercase letter
Source: Union Find pattern — AlgoAxiom
JavaScript
Test Case 1
root = [1, 2, 3]
Test Case 2
root = [1, 2, 3, 4, 5]
Idle