Попытка превышения Leetcode и получения памяти превышена? - PullRequest
0 голосов
/ 09 марта 2019

Я пытаюсь решить проблему Python на Leetcode, которая просит вас вычислить и вернуть длину самой длинной подстроки, содержащей уникальные символы для данной строки. Это код, который я тестировал и, кажется, работает, но сайт Leetcode не принимает его и уведомляет меня об ошибке «Превышена память». Есть идеи как это решить?

class Solution(object):
    def lengthOfLongestSubstring(self, s):
        """ First access all of the substrings """
        ls_subs = []
        unique_subs = []
        for i in range(len(s)):
            sub = s[i:]
            ls_subs.append(sub)

        """ Build versions of the substrings which contain unique chars """
        for sub in ls_subs:
            counter = 0
            unique = ""
            while counter < len(sub) and sub[counter] not in unique:
                unique += sub[counter]
                counter += 1
            unique_subs.append(unique)


        """ Find the longest one """
        length = 0
        for sub in unique_subs:
            if len(sub) > length:
                length = len(sub)
        return length

1 Ответ

1 голос
/ 17 марта 2019

Если LeetCode получит ошибку при запуске вашего кода в сравнении с полным набором тестовых случаев, когда вы нажмете Отправить, он должен показать вам тестовый случай, в котором ваш код не прошел, в левом верхнем углу экрана.Если, как я подозреваю, ошибка произошла с очень большой строкой, то данные тестового примера, которые она показывает, будут обрезаны, но там будет ссылка «Подробности», которую вы можете щелкнуть, чтобы увидеть полный тестовый пример.Так что получите тестовый пример с известным провалом, и вы можете использовать его для отладки своего кода.Кстати, поскольку вы только должны возвращать длину самого длинного уникального саба, вам не нужно вообще хранить уникальные сабы - точно так же, как вы обнаружите, что каждый уникальный саб делает что-то вроде longest = max(longest, len(unique)) после первой инициализациисамый длинный до 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...