Я получаю ошибку при запуске этого цикла - PullRequest
0 голосов
/ 13 октября 2019

Вам дан массив целых чисел 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].

1 Ответ

2 голосов
/ 13 октября 2019

Ваша логика неверна. Вот рабочее решение с минимальными изменениями:

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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...