Как я могу поменять нечетный массив? - PullRequest
0 голосов
/ 06 июня 2018

Как я могу поменять нечетный массив?индекс вне диапазона каждый раз, когда массив нечетный.Как я могу проверить, если последний массив нечетный, он не будет делать своп?

var list = [1,2,3,4,5,6,7,8,9,10,11]

if list.count > 0 {
    for index in 2..<list.count {
        if index % 2 == 0 {
            list.swapAt(index, index + 1)
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Думай просто.Максимальный индекс list.count-1, а индекс первой пары, подлежащей обмену, должен быть меньше этого.Теперь просто используйте while:

var index = 0
while index < list.count-1
{
   list.swapAt(index, index+1) // swap current pair
   index += 2                  // increment by 2 to get to next pair
}
0 голосов
/ 06 июня 2018

Делайте своп до list.count - 1, чтобы он не выходил за пределы диапазона списка.

var list = [1,2,3,4,5,6,7,8,9,10,11]

if list.count > 0 {
    for index in stride(from: 2, to: list.count - 1, by: 2){
         list.swapAt(index,index+1)
    }
}
...