This commit is contained in:
@@ -1,25 +1,20 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from collections import deque
|
|
||||||
|
|
||||||
|
|
||||||
def process_node(node, available_edges, visited):
|
def process_node(node, available_edges, visited):
|
||||||
paths = deque()
|
num_paths = 0
|
||||||
if node == "end":
|
if node == "end":
|
||||||
paths.append(deque(node))
|
return 1
|
||||||
return paths
|
|
||||||
if node.islower():
|
if node.islower():
|
||||||
visited.add(node)
|
visited.add(node)
|
||||||
neighbors = [n for e in available_edges if node in e for n in e if n != node]
|
neighbors = [n for e in available_edges if node in e for n in e if n != node]
|
||||||
for n in neighbors:
|
for n in neighbors:
|
||||||
if n not in visited:
|
if n not in visited:
|
||||||
nxt = process_node(n, available_edges, visited)
|
num_paths += process_node(n, available_edges, visited)
|
||||||
for p in nxt:
|
|
||||||
p.appendleft(node)
|
|
||||||
paths += nxt
|
|
||||||
if node in visited:
|
if node in visited:
|
||||||
visited.remove(node)
|
visited.remove(node)
|
||||||
return paths
|
return num_paths
|
||||||
|
|
||||||
|
|
||||||
def process_node_twice(node, available_edges, visited, visited_twice):
|
def process_node_twice(node, available_edges, visited, visited_twice):
|
||||||
|
|||||||
Reference in New Issue
Block a user