Re: [闲聊] 每日LeetCode

楼主: pandix (面包屌)   2022-09-26 19:55:34
990. Satisfiability of Equality Equations
给你很多"xi==yi" / "xi!=yi",问你有没有合法的解,有就回传 True,反之 False
变量名称都是小写英文字母。
Example 1:
Input: equations = ["a==b","b!=a"]
Output: false
Example 2:
Input: equations = ["b==a","a==b"]
Output: true
思路:
1.disjoint set经典题,把相等的变量都加到同一个 set 里就好。
遇到 "!=" 就判断两个是不是在同一个 set 里,是的话就矛盾了
2.避免出现 ["a!=b", "a==b"] 这种先不等式再等式的情况,要先把等式做完
所以先 sort 一次 equations 把等式拿到前面先做
Python code:
class Solution:
def equationsPossible(self, equations: List[str]) -> bool:
root = list(range(26))
equations.sort(key = lambda x: x[1] == '!')
def find(x):
if root[x] != x:
root[x] = find(root[x])
return root[x]
for equation in equations:
a, b = ord(equation[0])-97, ord(equation[3])-97,
if equation[1] == '=':
root[find(a)] = find(b)
elif find(a) == find(b):
return False
return True
contest 刚出完一题马上又帮大家复习一次 disjoint set==
作者: Rushia (みけねこ的鼻屎)   2022-09-26 20:01:00
大师
作者: nh60211as   2022-09-26 20:06:00
python 不能 char 相减吗? 'z' - 'a' 这样
楼主: pandix (面包屌)   2022-09-26 20:12:00
不行== 很讨厌
作者: nh60211as   2022-09-26 20:13:00
粪语言

Links booklink

Contact Us: admin [ a t ] ucptt.com