我的代码
这是华为的题目,题目提示我输出为空
vscode中的结果
真是急死我了,这是我的代码
import sys
while True:
try:
M_and_N=input()
M_N=M_and_N.split(" ")#输入M和N
N=int(M_N[0])#学生的人数N
M=int(M_N[1])#输入的个数M
score = input()
score_list = score.split(" ")#成绩列表
for index in range(N):#接受N此输入
score_list[index]=int(score_list[index])#
last_element=len(score_list)#求出最后一个元素的下标
store_list = []
for i in range(M):#输入N次
order = input()
order_list = order.split(" ")
order_name = order_list[0]#命令是Q还是U
order_first = int(order_list[1])#转化为整形
order_second = int(order_list[2])
if order_name == "Q":
if order_first == order_second:#相等
store_list.append(score_list[order_first-1])#第一个的下标到最后
elif order_second >order_first:#右大于左
store_list.append(max(score_list[order_first-1:order_second]))
else:#or1 =5 or2 = 4
store_list.append(max(score_list[order_second-1:order_first]))
if order_name == "U":#把学生a的改成指令要求的
score_list[order_first-1]=order_second
for number in store_list:
print(number)
except:
break
救救孩子吧,为什么本地运行就可以,在牛客网上运行就有错呢?
这是别人的正确代码,我这里也贴上来
while True:
try:
d0 = list(map(int,input().split()))#map(int,列表=[]),map函数会把int作用于列表中的每一个元素,得到[1,2,3]的整形列表
d1 = list(map(int,input().split()))
num = []
for i in range(d0[1]):
fun = input().split()
num0 = int(fun[1])-1
num1 = int(fun[2])-1
if fun[0] == "Q":
if num0 == num1:
num.append(d1[num0])
elif num0 < num1:
num.append(max(d1[num0:num1+1]))
else:
num.append(max(d1[num1:num0+1]))
elif fun[0] == "U":
d1[num0] = num1+1
for i in num:
print(i)
except:
break
至今不知道我错在哪,有没有哪位大佬指点一下,谢谢!