@@ -11,7 +11,7 @@ def longestWord(self, words):
11
11
:type words: List[str]
12
12
:rtype: str
13
13
"""
14
- def iter_dfs (node ):
14
+ def iter_dfs (words , node ):
15
15
result = - 1
16
16
stk = [node ]
17
17
while stk :
@@ -29,7 +29,7 @@ def iter_dfs(node):
29
29
trie ["_end" ] = - 1
30
30
for i , word in enumerate (words ):
31
31
reduce (dict .__getitem__ , word , trie )["_end" ] = i
32
- result = iter_dfs (trie )
32
+ result = iter_dfs (words , trie )
33
33
return words [result ] if result != - 1 else ""
34
34
35
35
@@ -45,19 +45,19 @@ def longestWord(self, words):
45
45
:type words: List[str]
46
46
:rtype: str
47
47
"""
48
- def dfs (node , result ):
48
+ def dfs (words , node , result ):
49
49
if result [0 ] == - 1 or len (words [node ["_end" ]]) > len (words [result [0 ]]):
50
50
result [0 ] = node ["_end" ]
51
51
for c in string .ascii_lowercase :
52
52
if c not in node or "_end" not in node [c ]:
53
53
continue
54
- dfs (node [c ], result )
54
+ dfs (words , node [c ], result )
55
55
56
56
_trie = lambda : collections .defaultdict (_trie )
57
57
trie = _trie ()
58
58
trie ["_end" ] = - 1
59
59
for i , word in enumerate (words ):
60
60
reduce (dict .__getitem__ , word , trie )["_end" ] = i
61
61
result = [- 1 ]
62
- dfs (trie , result )
62
+ dfs (words , trie , result )
63
63
return words [result [0 ]] if result [0 ] != - 1 else ""
0 commit comments