Python:Google Kickstart 2020 - A 轮中的运行时错误

Python: runtime error in Google Kickstart 2020 - Round A

我正在尝试使用 Python 3.7 解决 Google Kickstart 2020 A 轮的问题。 我通过了除“捆绑”以外的所有问题。 我的算法通过了样本,但由于运行时错误而未能通过测试。 我还用我用一个简单的脚本构建的大型测试用例对其进行了测试,并且它可以正常工作,而不会引发任何类型的异常。

我还认为,因为我在我的机器上使用 Python 3.8,而 Google 使用 3.7 测试脚本,这可能是重点...但我找不到我的代码有什么问题。 这是我的代码:

ans = 0
class Node:
    def __init__(self):
        self.children = {}
        self.count = 0
    
    def insert(node, key):
        for char in key:
            idx = char
            if idx not in node.children:
                node.children[idx] = Node()
            node = node.children[idx]
            
        node.count +=1

    def resetAns(self):
        global ans
        ans = 0

    def dfs(self, dep=0, k=0):
        global ans
        for c in self.children:
            self.children[c].dfs(dep+1, k)
            self.count+=self.children[c].count
        while self.count >= k:
            self.count -= k
            ans+=dep
        return ans

def bundling():
    N, K = map(int, input().split())
    _node = Node()
    _node.resetAns()
    for _ in range(0, N):
        _v = input()
        _node.insert(_v)
    return _node.dfs(0, K)            

for _ in range(int(input())):
    print("Case #{}: {}".format(_, bundling()))

欢迎任何帮助:D

由于 python 提供的默认递归深度限制较小,所以出现了这个问题。 您可以使用以下代码明确设置限制。

import sys 
sys.setrecursionlimit(10**6)