0
는 사전을 고려하십시오. 예를은 [파이썬]
A = [ [B], [C] ]
를 들어 우리는 내가 재귀 해결책을 마련하기 위해 노력하고
A = [ [B, D, I],[B, D, J], [B, E], [C, H] ]
에 그것을 확장 할 수 있지만, 나는 완전히 작동 아무것도 얻을 수 없습니다. 이 문제에 접근하는 방법에 대한 제안 사항이 있으십니까?
는 사전을 고려하십시오. 예를은 [파이썬]
A = [ [B], [C] ]
를 들어 우리는 내가 재귀 해결책을 마련하기 위해 노력하고
A = [ [B, D, I],[B, D, J], [B, E], [C, H] ]
에 그것을 확장 할 수 있지만, 나는 완전히 작동 아무것도 얻을 수 없습니다. 이 문제에 접근하는 방법에 대한 제안 사항이 있으십니까?
당신은 다음과 같은 기능을 가진 모든 경로를 찾을 수 있습니다. 그러나 코드를 게시하지 않으면 당신이 자기가 시도하는 것을 알지 못합니다. 그래서 당신은 문제가있는 곳을 알지 못합니다. 그리고 당신까지는 아무 것도 설명 할 수 없었습니다. 당신의 시도하고이 코드에 대해 이야기 :
def find_all_paths(graph, start,path=[]):
path=path+[start]
if not graph.has_key(start):
return [path]
paths = []
for nodes in graph[start]:
for n in nodes :
if n[0] not in path:
newpaths = find_all_paths(graph, n[0], path)
for newpath in newpaths:
paths.append(newpath)
return paths
g={ "A": [ ["B"], ["C"] ],
"B": [ ["D"], ["E"] ],
"C": [ ["H"] ],
"D":[["I"],["J"]]
}
Demmo :
print find_all_paths(g,'A')
[['A', 'B', 'D', 'I'], ['A', 'B', 'D', 'J'], ['A', 'B', 'E'], ['A', 'C', 'H']]
print find_all_paths(g,'B')
[['B', 'D', 'I'], ['B', 'D', 'J'], ['B', 'E']]
"나는 재귀 해결책을 마련하기 위해 노력하고 있지만 완벽하게 작동하도록 아무것도 얻을 수 없다." Pls 귀하의 '작동하지 않는'코드를 여기에 게시하십시오. "이 문제에 접근하는 방법에 대한 제안이 있습니까?" 재귀는 확실히 접근 방식입니다 (깊이 우선 검색). – Sriram