给定一系列字符串来表示两个变量之间的关系,每个字符串固定为4长度,并且是以下两种表现形式:
示例 1:
输入: [“a==b”,”b!=a”]
输出: false
解释: 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.
示例 2:
输入: [“b==a”,”a==b”]
输出: true
解释: We could assign a = 1 and b = 1 to satisfy both equations.
示例 3:
输入: [“a==b”,”b==c”,”a==c”]
输出: true
示例 4:
输入: [“a==b”,”b!=c”,”c==a”]
输出: false
示例 5:
输入: [“c==c”,”b==d”,”x!=z”]
输出: true
Note:
- 1 <= equations.length <= 500
- equations[i].length == 4
- equations[i][0] and equations[i][3] are lowercase letters
- equations[i][1] is either ‘=’ or ‘!’
- equations[i][2] is ‘=’
思路分析:
这道题有点染色法的意思,我先根据给定的式子中的相等式
将图画出来,然后使用dfs将所有相连的节点付成相同的值。
然后根据给定的式子中的不等式
判断这些不该相等的节点值中是否有相同的值。
变量意义:
d
用来存储每个节点对应的节点值G
用来存储图N
用来存储不等关系
1 | class Solution(object): |