以下是我解决此问题的代码:
def nfsmaccepts(current, edges, accepting, visited):
print ('iteration', current, ''.join([i[1] for i in visited]))
if current in accepting:
print ('accepted')
return ''.join([i[1] for i in visited])
else:
for edge in edges:
if edge not in visited and current == edge[0]:
print (edge, ' matched')
visited.append(edge)
for i in edges[edge]:
if nfsmaccepts(i, edges, accepting, visited) is not None:
print (edge, i, ' chosen')
return nfsmaccepts(i, edges, accepting, visited)
else:
visited = visited[:-1]
结果如下:
^{pr2}$我不明白为什么当递归函数的一个终端调用已经到达时,程序为什么继续运行for循环而返回None。请帮忙!在
从
if
语句调用函数时,将出现“accepted”状态:然后继续打印
(4, 'c') 5 chosen
。上一次迭代也是这样,所以您从迭代4再次调用它,并打印(3, 'b') 4 chosen
。在也许在测试之前只调用一次结果存储?在
^{pr2}$相关问题 更多 >
编程相关推荐