Google Kickstart回合E 2020最长算术运行时错误

问题描述

我试图解决以下提到的挑战,但是出现运行时错误。我用Python

问题

算术数组是至少包含两个整数且连续整数之间的差相等的数组。例如,[9,10],[3,3,3]和[9,7,5,3]是算术数组,而[1,3,3,7],[2,1,2],和[1,2,4]不是算术数组。

Sarasvati具有N个非负整数的数组。数组的第i个整数是Ai。她想从数组中选择一个最大长度的连续算术子数组。请帮助她确定最长的连续算术子数组的长度。

输入: 输入的第一行给出测试用例的数量,T。每个测试用例都从包含整数N的行开始。第二行包含N个整数。第i个整数是Ai。

输出: 对于每个测试用例,输出一行包含Case #x:y的行,其中x是测试用例编号(从1开始),y是最长连续算术子数组的长度。

限制 时间限制:每个测试集20秒。 内存限制:1GB。 1≤T≤100。 0≤Ai≤109。

测试集1

2≤N≤2000。

测试集2

2≤N≤2×105(最多10个测试用例)。

对于其余情况,2≤N≤2000。

样本输入

4

7

10 7 4 6 8 10 11

4

9 7 5 3

9

5 5 4 5 5 5 4 5 6

10

5 4 3 2 1 2 3 4 5 6

输出

案例1:4

案例2:4

案例3:3

案例4:6

这是我的python3解决方案,给出运行时错误


t = int(input())
for t_case in range(t):
    n = int(input())
    arr = list(map(int,input().split()))
    x = []  
    for i in range(n - 1) : 
        x.append((arr[i] - arr[i + 1]))

    ans,temp = 1,1
    j = len(x)

    for i in range(1,j): 
        if x[i] == x[i - 1]: 
            temp = temp + 1
        else: 
            ans = max(ans,temp) 
            temp = 1
                  
    ans = max(ans,temp) 

    print(f"Case #{t_case+1}: {ans+1}")

有人可以帮我吗?

解决方法

到目前为止,Kickstart使用的Python 3.5不支持f字符串(它们已在py3.6中添加)。尝试将它们替换为str.format

,
t=int(input())
for test in range(t):
    n=int(input())
    arr = list(map(int,input().split()))
    x = []  
    for i in range(n - 1) : 
        x.append((arr[i] - arr[i + 1]))

    ans,temp = 1,1
    j = len(x)

    for i in range(1,j): 
        if x[i] == x[i - 1]: 
            temp = temp + 1
        else: 
            ans = max(ans,temp) 
            temp = 1
                  
    ans = max(ans,temp) 
    print('Case #{0}: {1}'.format(test+1,ans+1))