虽然我在HackerRank上为袜子商人写了一个代码,但我有一个错误。你知道吗
我试图可视化名为ar
的数组的转换,但还没有找到导致错误的原因。你知道吗
代码:
#!/bin/python3
import math
import os
import random
import re
import sys
# Complete the sockMerchant function below.
def sockMerchant(n, ar):
num = 0
for i in range(len(ar)):
if ar.count(ar[i]) > 1:
if ar.count(ar[i]) % 2 == 0:
num += ar.count(ar[i]) // 2
print(num) #2
print(ar[i])
while ar[i] in ar:
ar.remove(ar[i])
#[20, 20, 30, 50, 20]
else:
num += math.ceil(ar.count(ar[i]) // 2)
print(num) #3
while ar[i] in ar:
ar.remove(ar[i])
#[30, 50]
else:
continue
return num #3
if __name__ == '__main__':
n = 9
ar =[10, 20, 20, 10, 10, 30, 50, 10, 20]
result = sockMerchant(n, ar)
print(result)
输出:
Finished in N/A
2
10
IndexError: list index out of range
Line 18 in sockMerchant (Solution.py)
Line 36 in <module> (Solution.py)
错误显示在以下行中:
每次通过循环时,都会运行代码
ar[i]
。如果在ar
中没有足够的元素来产生ar[i]
,则会出现该错误。既然要从循环内的ar
中删除元素,我猜ar
不再至少有i+1
元素。你知道吗我想你想要这个:
因为这会将要删除的值(“10”,基于您的注释)保存到一个变量中,并删除它的所有实例。你知道吗
相关问题 更多 >
编程相关推荐