Python代码保留了大量内存

Python代码保留了大量内存,python,memory,Python,Memory,我在leetcode上运行了下面的代码,它显示了14MB的内存由于某种未知的原因被征服(对我来说)。我知道这很糟糕,因为我是第10百分位的noobs,所以有人能告诉我是谁吃的吗 class Solution: def longestPalindrome(self, s: str) -> int: all_freq = {} for i in s: if i in all_freq:

我在leetcode上运行了下面的代码,它显示了14MB的内存由于某种未知的原因被征服(对我来说)。我知道这很糟糕,因为我是第10百分位的noobs,所以有人能告诉我是谁吃的吗

class Solution:
    def longestPalindrome(self, s: str) -> int:
        all_freq = {} 
        
        for i in s: 
            if i in all_freq: 
                all_freq[i] += 1
            else: 
                all_freq[i] = 1
        
        number = 0
        flag = False
        
        for i in all_freq:
            number = number + all_freq[i] // 2 
            if all_freq[i] % 2 == 1:
                flag = True
        
        number = number*2
        if flag : number = number +1
            
        return number
问题是:

内存消耗取决于数据量、实例和测试用例,而这些数据的基准并不那么准确,只是不用担心。这也将通过:

class Solution:
    def longestPalindrome(self, s):
        odds = sum(val & 1 for val in Counter(s).values())
        return len(s) - odds + bool(odds)

如果用一个非常非常大的字符串作为参数调用此代码,那么我可以想象它会占用大量内存。@JohnGordon-Nah,它们只是显示整个Python进程的内存,不管解决方案如何,它都不会低于~13MB左右。