LeetCode Python 208 - Память не очищается от предыдущего тестового примера?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 LeetCode Python 208 - Память не очищается от предыдущего тестового примера?

Сообщение Anonymous »

Проблема для справки: https://leetcode.com/problems/implement ... eeобразной Однако во время одного из испытаний подчинения, где вход < /p>
["Trie","startsWith"]
[[],["a"]]

Ожидаемый ответ [null, false] , в то время как мой ответ возвращался [null, true] . Однако, просмотрев свой код, я был уверен, что моя логика верна, и она должна была вернуть False.
после дальнейшей отладки, добавив представление печати и распечатав входные данные, я понял, что, несмотря на ввод вопроса, не имеющий никакого вставки, на самом деле он передается в Trie с App и Apple , предположительно, из предыдущего тестового примера
и Apple . Из комментариев, упоминающих аналогичную проблему, и выпуск GitHub по адресу https://github.com/leetcode-feedback/le ... ssues/6108, который был закрыт, даже если проблема все еще существует.
Смешно, если я пытаюсь выполнить тот же самый код и тестовый случай, используя режим Depugger leetcode, он возвращается в режиме leetcode. /> Хотя я почти уверен, что это что -то не так с LeetCode, эта проблема не возникает, когда я пытался использовать вставку в принятом решении других пользователей. Это означает, что, вероятно, что -то не так с LeetCode, и что -то не так с моим кодом, чтобы воспроизвести эту конкретную ошибку.from collections import deque

class Trie:
def __init__(self, children = {}, value = '', is_terminal = False):
self.children = children
self.value = value
self.is_terminal = is_terminal

def __str__(self):
s = ''
s += self.value
queue = deque([])
for child in self.children.values():
queue.append(child)
while queue:
node = queue.popleft()
s += node.value
if node.is_terminal:
s += 'T'
for child in node.children.values():
queue.append(child)
return s

def __repr__(self):
return self.__str__()

def get_child(self, val) -> "Trie":
return self.children[val]

def has_child(self, val) -> bool:
return val in self.children

def set_terminal(self) -> None:
self.is_terminal = True

def insert(self, word: str) -> None:
node = self
for char in word:
if not node.has_child(char):
new = Trie({}, char, False)
node.children[char] = new
node = node.get_child(char)

node.set_terminal()

def search(self, word: str) -> bool:
node = self
for char in word:
if not node.has_child(char):
return False
node = node.get_child(char)
return node.is_terminal

def startsWith(self, prefix: str) -> bool:
print(self). # this returns appTleT
node = self
for char in prefix:
if not node.has_child(char):
return False
node = node.get_child(char)
return True


Подробнее здесь: https://stackoverflow.com/questions/796 ... -test-case
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»