华为的一道机试题目,不知道为什么自己脑子抽了一下想了很久很久(其实主要还是DFS太不熟了
代码也不是很elegant,将就记录一下。
class Node:
def __init__(self, data, next = None):
self.data = data
self.next = next
def dfs(graph, stack, destination, hasLoop, visited):
if(len(stack) == 0):
return False
else:
v = stack[-1]
temp = graph[v]
while temp.next is not None:
if v==destination:
visited = [0]*10
visited[v] = 1
if temp.next.data == destination:
hasLoop[destination] = 1
print(stack)
else:
if visited[temp.next.data] == 0 and temp.next.data>destination:
visited[temp.next.data] = 1
stack.append(temp.next.data)
dfs(graph, stack, destination,hasLoop,visited)
temp = temp.next
stack.pop()
s = input().split(']') #1:[2,3],4:[1],3:[4],2:[4]
wholePat

这篇博客记录了作者在华为机试中遇到的两道题目,包括寻找有向图中的所有圈和实现计算器。尽管作者认为题目本身不难,但在实际操作中遇到了困难,尤其是代码在本地IDE通过但在测试平台上无法通过,导致心情失落。
最低0.47元/天 解锁文章
6万+

被折叠的 条评论
为什么被折叠?



