如何解决Google Kick中的运行时错误开始使用python
我正在练习“ Round D 2020-Kick Start 2020”,尽管我已经正确完成了Record Breaker问题的编码,并且还显示了示例测试用例的正确答案,但我仍然遇到RE(运行时错误)。 请参阅随附的屏幕截图和代码。 enter image description here
T=int(input())
rlst=[]
if "\n" in T:
T
for i in range(T):
N=int(input())
V=input()
V_lst=V.split()
rbday=0
high_day=V_lst[0]
if V_lst[0] > V_lst[1]:
rbday=rbday+1
high_day=V_lst[0]
for n in range(1,N-1):
if ((V_lst[n] > V_lst[n-1]) and (V_lst[n] > V_lst[n+1]) and (V_lst[n] > high_day)) :
high_day=V_lst[n]
rbday=rbday+1
rlst.append(rbday)
for i in range(T):
print("Case {}# {}".format(i+1,rlst[i]))
解决方法
错误在这一行:if V_lst[0] > V_lst[1]:
,因为你没有考虑N等于1的情况,所以这个V_lst[1]
不在索引中。
我也可以使用 Python 3.7 分享我的解决方案:
T = int(input())
for case in range(1,T+1):
N = int(input())
V = list(map(int,input().split()))
n_breaks = 0
d = 0 #It's like previous high day in your code.
for i in range(N):
if N == 1:
n_breaks = 1
break
if i != N-1:
if V[i] > d and V[i] > V[i+1]:
n_breaks += 1
d = V[i]
else:
if V[i] > d and V[i] > V[i-1]:
n_breaks += 1
print(f"Case #{case}: {n_breaks}")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。