如果有一个循环,我希望它返回true,如果没有,则返回false。如果每个节点只有一条边。。。在
例如:
walkways_info = """\
U 3
0 1
1 2
2 0
"""'
print(interesting_path_feasible(walkways_info))
但是当每个节点有多个边时,它就不起作用了,因为字典不包含多个值。在
例如:
^{pr2}$我该怎么解决这个问题? 提前感谢:)
def interesting_path_feasible(walkways_info_str):
"""Determines if a cycle exists"""
graph_dict = dict(e.split(' ') for e in walkways_info_str.splitlines())
visited = set()
path = [object()]
path_set = set(path)
stack = [iter(graph_dict)]
while stack:
for node in stack[-1]:
if node in path_set:
return True
elif node not in visited:
visited.add(node)
path.append(node)
path_set.add(node)
stack.append(iter(graph_dict.get(node, ())))
break
else:
path_set.remove(path.pop())
stack.pop()
return False
将值列为一个列表,例如
有两种方法可以向键添加值,如果还没有,还可以创建一个列表。我将分几个步骤展示一种这样的方法。在
^{pr2}$结果:
下一步,尝试:
结果:
setdefault的神奇之处在于,如果未定义该键,它将初始化该键的值,否则它什么也不做。现在,注意setdefault返回键,您可以将它们组合成一行:
结果:
相关问题 更多 >
编程相关推荐