输入的rules是这样的格式rules = [[1,2,3],[1,2,4]]
时间: 2023-09-29 22:10:59 浏览: 35
好的,那么稍作修改即可:
```
def check_infinite_holdings(rules):
# 构建图
graph = {}
for i in range(len(rules)):
graph[i] = []
for j in range(len(rules)):
if i != j:
x, y, z = rules[i]
a, b, c = rules[j]
if y == a:
graph[i].append(j)
elif b == x:
graph[j].append(i)
# 拓扑排序
visited = [0] * len(rules)
for i in range(len(rules)):
if visited[i] == 0:
stack = [i]
visited[i] = 1
while stack:
node = stack.pop()
for neighbor in graph[node]:
if visited[neighbor] == 0:
visited[neighbor] = 1
stack.append(neighbor)
elif visited[neighbor] == 1:
return True
visited[node] = 2
return False
```
其中,`rules`是一个二维列表,每个元素是一个长度为3的列表,表示一个交易规则。其他部分的实现与之前的代码是一样的。