How to reverse array in Swift without using “.reverse()”?

后端 未结 21 1829
清歌不尽
清歌不尽 2020-12-08 20:14

I have array and need to reverse it without Array.reverse method, only with a for loop.

var names:[String] = [\"Apple\", \"Microsof         


        
21条回答
  •  北荒
    北荒 (楼主)
    2020-12-08 20:55

    func reverse(array: inout [String]) {
        if array.isEmpty { return }
        var f = array.startIndex
        var l = array.index(before: array.endIndex)
        while f < l {
            swap(array: &array, f, l)
            array.formIndex(after: &f)
            array.formIndex(before: &l)
        }
    }
    
    private func swap( array: inout [String], _ i: Int, _ j: Int) {
        guard i != j else { return }
        let tmp = array[i]
        array[i] = array[j]
        array[j] = tmp
    }
    

    Or you can write extension of course

提交回复
热议问题