为您提供了一个整数a
数组。通过以下方式重新排列b
的元素,生成一个新的数组a
:
b = [a[0], a[len(a)-1], a[1], a[len(a)-2, ...]
我的代码仅循环一次,而我只是被困在这里。我尝试过的是下面的
def alternatingSort(a):
length = len(a)
b = []
for i in range(length):
if i % 2:
b.append(a[length-i])
else:
b.append(a[i])
return b
如果我的输入是[1, 3, 5, 6, 4, 2]
,则我的输出应该是[1,2,3,4,5,6]
但是我得到[1, 2, 5, 6, 4, 3]
。
答案 0 :(得分:2)
您的逻辑不正确。这是最小更改的有效解决方案:
def alternatingSort(a):
length = len(a)
b = []
for i in range(length):
if i % 2:
b.append(a[length - (i // 2) - 1]) # Updated.
else:
b.append(a[i // 2]) # Updated.
return b
a = [1, 3, 5, 6, 4, 2]
print(alternatingSort(a))
a = [1, 3 ,2]
print(alternatingSort(a))