Python HackerRank动态数组问题-代码中存在运行时错误
我想在HackerRank上解决这个问题。这是我的代码: !/垃圾桶/蟒蛇3 输入数学 导入操作系统 随机输入 进口稀土 导入系统 完成下面的“DynamicCarray”功能。 该函数应返回一个整数数组。 该函数接受以下参数: 1.整数n 2.二维整数数组查询 def dynamicArrayn,查询: lastAnswer=0 a=[] 数组_结果=[] 对于兰根的k: a、 附加[] 对于查询中的i: x=i[1] y=i[2] 如果i[0]==1: seq=x^最后一个答案%n a[顺序].附录 elif i[0]==2: seq=x^最后一个答案%n lastAnswer=a[顺序][y] 数组\u result.appendlastAnswer 返回数组结果 如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu': fptr=openos.environ['OUTPUT_PATH'],'w' 第一个\u多个\u输入=input.rstrip.split n=第一个\u多个\u输入[0] q=intfirst\u多输入[1] 查询=[]1 0 5,1 1 7,1 0 3。。。 对于范围内的uq: querys.appendlistmapint,input.rstrip.split 结果=dynamicArrayn,查询 fptr.write'\n'.joinmapstr,结果 fptr.write'\n' 关闭 我收到一个运行时错误: 回溯最近一次呼叫上次: 文件Solution.py,第50行,in fptr.write'\n'.joinmapstr,结果 TypeError:“非类型”对象不可编辑 有人能帮我吗?我似乎找不到解决办法 这是输入: 2.5 105 117 103 2110 2 1 1 谢谢 更新:多亏了@cireo,这个输入现在似乎可以工作了,但是代码不适用于其他测试用例。这个代码有什么问题Python HackerRank动态数组问题-代码中存在运行时错误,python,data-structures,dynamic-arrays,Python,Data Structures,Dynamic Arrays,我想在HackerRank上解决这个问题。这是我的代码: !/垃圾桶/蟒蛇3 输入数学 导入操作系统 随机输入 进口稀土 导入系统 完成下面的“DynamicCarray”功能。 该函数应返回一个整数数组。 该函数接受以下参数: 1.整数n 2.二维整数数组查询 def dynamicArrayn,查询: lastAnswer=0 a=[] 数组_结果=[] 对于兰根的k: a、 附加[] 对于查询中的i: x=i[1] y=i[2] 如果i[0]==1: seq=x^最后一个答案%n a[顺序
你的问题的答案在hackerrank提供的样板中 该函数应返回一个整数数组 您还可以看到result=dynamicArrayn,查询将从引发异常的mapstr result返回一个整数列表 在您的代码中,您可以打印LastAnswer,但您可能需要
+ ret = []
...
- print(lastAnswer)
+ ret.append(lastAnswer)
+ return ret
相反
由于您不返回任何内容,因此该函数在默认情况下不返回任何内容,这无法通过map进行迭代。您的问题的答案在hackerrank提供的样板文件中 该函数应返回一个整数数组 您还可以看到result=dynamicArrayn,查询将从引发异常的mapstr result返回一个整数列表 在您的代码中,您可以打印LastAnswer,但您可能需要
+ ret = []
...
- print(lastAnswer)
+ ret.append(lastAnswer)
+ return ret
相反
由于您不返回任何内容,因此该函数在默认情况下不返回任何内容,这无法通过映射进行迭代。您可以尝试此操作,它工作完全正常。无运行时错误
用此代码替换DynamicCarray函数。希望这会对你有所帮助
def dynamicArrayn,查询:
col = [[] for i in range(n)]
res = []
lastanswer = 0
for q in queries:
data = (q[1]^lastanswer)%n
if q[0] == 1:
col[data].append(q[2])
elif q[0] == 2:
ind_x = q[2]%len(col[data])
lastanswer = col[data][ind_x]
res.append(lastanswer)
return res
你可以试试这个,它工作得很好。没有运行时错误
用此代码替换DynamicCarray函数。希望这会对你有所帮助
def dynamicArrayn,查询:
col = [[] for i in range(n)]
res = []
lastanswer = 0
for q in queries:
data = (q[1]^lastanswer)%n
if q[0] == 1:
col[data].append(q[2])
elif q[0] == 2:
ind_x = q[2]%len(col[data])
lastanswer = col[data][ind_x]
res.append(lastanswer)
return res
它看起来像mapstr的结果,结果是一个非类型,它不是join@Dodge谢谢我可以知道如何输出lastAnswer的值,因为单独返回该值是不起作用的。如下文所述,通常的过程不是以链接方式编辑问题,因为这会使旧答案不再有意义=。如果你在玩了这个问题之后仍然被卡住了,那么也可以查看hackerrank论坛,然后尝试找出最小的可重复性问题并问另一个问题。它看起来像mapstr的结果,结果是一个非类型,这并不是join@Dodge谢谢我可以知道如何输出lastAnswer的值,因为单独返回该值是不起作用的。如下文所述,通常的过程不是以链接方式编辑问题,因为这会使旧答案不再有意义=。如果你在玩了这个问题之后仍然被卡住了,那么也可以查看hackerrank论坛,然后尝试找出最小的可重复问题并问另一个问题。谢谢!!!哇,粗心的错误!!我更正了代码,但似乎这不适用于其他测试用例。是的,如果你在修补后仍停留在实际问题上,你可能需要另一个SO问题=谢谢!!!哇,粗心的错误!!我修改了代码,但似乎这对其他测试用例不起作用。是的,如果你在修改后仍停留在实际问题上,你可能需要另一个SO问题=