Проблема понимания цикла. Python
Почему при очистке tmp, он удаляется и в result? В result должны быть списки подстрок без повторяющихся символов.
def lengthOfLongestSubstring(s):
tmp = []
result = []
index = 0
for i in s:
if i not in tmp:
tmp.append(i)
continue
result.append(tmp)
tmp.clear()
return result
print(lengthOfLongestSubstring('pwwkew'))
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Потому что не нужно использовать метод tmp.clear() не понимая чётко что вы делаете. Используйте вместо этого tmp = [] как и в коде выше.
result.append(tmp) добавляет ссылку на tmp, и когда вы пишете tmp.clear(), то происходит то, что вы видите - очищаются все добавленные списки, потому что вы добавили в result много копий одного и того же списка. А когда вы пишете tmp = [], вы создаёте новый пустой список, не зависимый от других списков.